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类型)之后在进行存储。
网友评论