美文网首页
swift中UserDefaults存储NSNull对象

swift中UserDefaults存储NSNull对象

作者: 梁森的简书 | 来源:发表于2021-05-29 17:46 被阅读0次

UserDefaults存储NSNull对象

let defaults = UserDefaults.standard
let null = NSNull()
defaults.setValue(null, forKey: "null")

crash报错:

Thread 1: "Attempt to insert non-property list object null for key null"

UserDefaults存储自定义对象

let p = Person(name: "p")
defaults.setValue(p, forKey: "p")

crash报错:

Thread 1: "Attempt to insert non-property list object swift_test.Person for key p"

UserDefaults不能直接存储NSNull对象,也不能直接存储自定义对象。如果想要存储NSNull对象,直接存nil就行,如果想要存储自定义对象,需要先将其转换成NSData类型(自定义对象归档之后转成NSData类型)之后在进行存储。

相关文章

网友评论

      本文标题:swift中UserDefaults存储NSNull对象

      本文链接:https://www.haomeiwen.com/subject/oxzwjltx.html