Ste*_*vik 1 nsuserdefaults swift
我需要存储一个可以包含nil作为值的字典
例
var someOptionalVar: String? = nil
var dict: [String: AnyObject?] = [
"someOptionalVar": self.someOptionalVar
]
defaults.setObject(dict, forKey: self.nsUserDefaultsKey)
Run Code Online (Sandbox Code Playgroud)
但它给了我这个错误
无法将'[String:AnyObject?]'类型的值转换为预期的参数类型'AnyObject?'
我知道我可以保留nil变量然后当我从NSUserDefaults解析字典时,我会将变量(对应于缺少的属性)设置为nil,但这不是我想要做的.
那么如何在NSUserDefaults中存储nil值?
使用NSNull()而不是nil,并声明字典仅包含非选项:
var someOptionalVar: String? = nil
var dict: [String: AnyObject] = [
"someOptionalVar": self.someOptionalVar ?? NSNull()
]
defaults.setObject(dict, forKey: self.nsUserDefaultsKey)
Run Code Online (Sandbox Code Playgroud)