如何修复异常:
[User Defaults] Attempt to set a non-property-list object {
4 = 5;
} as an NSUserDefaults/CFPreferences value for key MyKey通过执行以下代码引发(Swift 3)
let ns = NSDictionary(dictionary: [4: 5])
UserDefaults.standard.set(ns, forKey: "MyKey")上面的代码正确地保存了String类型,但是NSDictionary有问题
发布于 2017-06-07 14:35:18
所有属性列表键都必须是String。
来自文档
虽然
NSDictionary和CFDictionary对象允许它们的键是任何类型的对象,但是如果键不是字符串对象,则集合不是属性列表对象。
let ns = ["4": 5]
UserDefaults.standard.set(ns, forKey: "MyKey")不需要使用NSDictionary,Swift Dictionary的工作方式是相同的,并且是隐式桥接的。
发布于 2017-06-07 14:29:19
您的字典必须有字符串作为键,才能将其保存到UserDefaults
这对我来说很管用:
let ns = NSDictionary(dictionary: ["4": 5])
UserDefaults.standard.set(ns, forKey: "MyKey")https://stackoverflow.com/questions/44415250
复制相似问题