class Customer: NScopying,NSObject { var name: String! var age: Int! var address: Address!}
那时我没有控制权来修改模型的任何属性和签名作为其内部SDK.但是我需要将对象存储在磁盘/用户默认值中并在需要时加载.
可能吗?如果是的话我该怎么做?
解决方法 一种方法是使用 SwiftyJSON将模型对象转换为JsON数据:extension Customer { func toJsON() -> JsON { return [ "name": name "age": age "address": address.toJsON() // add a toJsON method the same way in an Address extension ] } static func fromJsON(_ Json: JsON) -> Customer { let customer = Customer() customer.name = Json["name"].string customer.age = Json["age"].int customer.address = Address.fromJsON(Json["address"]) // add a fromJsON method the same way }}
现在您可以执行类似保存到UserDefaults的 *** 作
UserDefaults.standard.set(try! Customer().toJsON().rawData(),forKey: "my key")let customer = Customer.fromJsON(JsON(data: UserDefaults.standard.data(forKey: "my key")!))总结
以上是内存溢出为你收集整理的ios – 在Swift中扩展自定义对象 – 扩展全部内容,希望文章能够帮你解决ios – 在Swift中扩展自定义对象 – 扩展所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)