如何在Swift中的multipleviewControllers中访问数据?

时间:2016-12-22 12:51:41

标签: ios swift

我会尽力解释这个场景。 让我们说如果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中使用此数组。另一种解决方案可能是模型类是单例。 我正在寻找一个更乐观的解决方案。三江源

1 个答案:

答案 0 :(得分:0)

如果数据更多,则使用 NSKeyedArchiever 对其进行加密,并将其存储在用户默认值中。只要您需要数据,就可以从用户默认值中获取数据,并使用 NSKyedUnarchiever 取消存档。

注意:只有在您想要保留数据时,这才是最佳解决方案。