如何将自定义对象数组保存到NSUserDefauls,如:
class Settings: NSObject {
var name: String? = ""
var addresss: [Address] = [Address]()
var addressSelectedIndex: Int = 0
....
}
class Address: NSObject {
var street: String? = ""
var city: String? = ""
....
}
我已经为这两个类添加了编码器和解码器。收到错误:
func encodeWithCoder(aCoder: NSCoder) {
....
if let _addresss = self.addresss { // here
aCoder.encodeObject(_ addresss, forKey: "addresss")
}
}
条件绑定的初始化程序必须具有可选类型,而不是'[地址]'
答案 0 :(得分:0)
因为你声明了
var addresss: [Address] = [Address]()
addresss
不是可选的,因此您不需要使用if let
。
您应该将其声明为:
var addresss: [Address]?
答案 1 :(得分:0)
$("#editor").html("I am a <b>bold</b> text.");
不是可选属性,您将其初始化为空数组。因此,使用addresss
nil
检查此属性是没有意义的。
您的编码功能应如下所示:
if let