当前位置: 首页 > 面试题库 >

在UserDefaults中存储Int64

耿永寿
2023-03-14
问题内容

我这样定义字典:

var teamsData = Dictionary<String,Dictionary<String,Int64>>()

然后,我试图将其存储在userdefaults中:

NSUserDefaults.standardUserDefaults().setObject(teamsData, forKey: "teamsData")

但它抛出错误:

Type Dictionary<String,Dictionary<String,Int64>> does not conform to protocol 'Any Object'

问题答案:

用户默认对象只能是的一个实例(或实例的组合)
NSDataNSStringNSNumberNSDateNSArray,或NSDictionary

有些斯威夫特类型自动桥接基金类型,例如IntUIntFloatDoubleBool彼此桥接NSNumber。因此,可以将其保存为用户默认设置:

var teamsData = Dictionary<String,Dictionary<String,Int>>()

在64位体系结构上,Int 64位整数,而在32位体系结构上,Int是32位整数。

的固定大小的整数类型,例如Int64 自动桥接NSNumber。在Swift-
将Int64强制转换为NSMutableArray的AnyObject中也观察到了这一点。因此,要在用户默认值中存储64位整数,必须NSNumber显式使用:

var teamsData = Dictionary<String,Dictionary<String,NSNumber>>()

// Example how to add a 64-bit value:
let value : UInt64 = 123
teamsData["foo"] = ["bar" : NSNumber(unsignedLongLong: value)]


 类似资料:
  • 我想将用户对当前语言的选择存储到UserDefaults。用户通过选择器选择他们喜欢的语言。然而,我不知道如何放置代码来更新UserDefaults。 下面是我的代码: 然后在我的模型课上: 和选择语言的用户界面: 我如何从UserDefaults加载所选语言并更新用户?

  • 我试图将用户图像保存为userDefaults,但我总是收到错误“Thread 1:”尝试插入非属性列表对象(函数)以进行键保存“这是我的代码

  • 问题内容: 我有一个要保存到UserDefaults的结构。这是我的结构 在另一个ViewController中,我有一个UIButton附加到此结构,例如 我想要它,以便每当用户单击该按钮时,它也将结构保存到UserDefaults,以便每当用户退出该应用程序然后将其打开时,它都会被保存。我该怎么做? 问题答案: 在Swift 4中,这几乎是微不足道的。只需将其标记为采用Codable协议,即可

  • 问题内容: 我正在尝试对代码进行编程,以便如果用户按下“夜间按钮”,则背景将变为黑色,并且如果用户关闭应用程序,则背景将保持黑色。(白天模式也是如此。) 请注意:我已经对按钮进行了编码,当他们按下按钮时,所有场景都会切换到该模式。 这是我的代码,需要保存背景色:(两个if语句都需要它) 我的日夜颜色: 问题答案: Swift 4.2或更高版本 请注意,这只会将RGBA CGFloat值另存为属性列

  • 问题内容: 如何在Swift中使用UserDefaults保存/检索字符串,布尔值和其他数据? 问题答案: 参考:NSUserdefault objectTypes 商店 取回 去掉 删除所有键 Swift 2及以下 商店 取回 去掉 寄存器 registerDefaults:将registrationDictionary添加到每个搜索列表的最后一项。这意味着在NSUserDefaults在所有其

  • 我正在尝试使用put方法将arraylist存储在hashmap中。我在下一步中清除了列表,以便在下一次迭代中添加下一组值。一旦清除列表,地图中的值也会被清除。虽然我在清理清单之前已经把清单放在地图上了。 sysout打印{key=[]} 有人请让我清楚如何坚持hashmaphash地图。