我会尽力解释这个场景。 让我们说如果viewControllerA告诉模型保存一些数据(例如来自json响应的数据)然后viewControllerD(或任何其他viewcontroller)需要数据,我该如何从模型中访问数据。在viewControllerD中创建模型实例会创建一个没有任何数据的新实例。
下面的代码解释了该方案。
ViewControllerA
让userdetails = UserDetails(json:self.userDetailsList!)
userdetailsarray.append(userdetails)//全局数组
//模型 class UserDetails:NSObject {
var name : String?
var profession : String?
var id: String?
init(json: NSDictionary) {
let name = json["name"] as? String
let profession = json["profession"] as? String
let id = json["id"] as? String
self.name = name
self.profession = profession
self.id = id
super.init()
}
} 可能的解决方案我知道:创建一个全局变量
var userdetailsarray = [UserDetails]
并将UserDetails(模型)附加到此数组中,并在多个viewControllers中使用此数组。另一种解决方案可能是模型类是单例。 我正在寻找一个更乐观的解决方案。三江源
答案 0 :(得分:0)
如果数据更多,则使用 NSKeyedArchiever 对其进行加密,并将其存储在用户默认值中。只要您需要数据,就可以从用户默认值中获取数据,并使用 NSKyedUnarchiever 取消存档。
注意:只有在您想要保留数据时,这才是最佳解决方案。