【发布时间】:2016-12-22 12:51:41
【问题描述】:
我会尽量解释这个场景。 假设 viewControllerA 告诉模型保存一些数据(例如来自 json 响应的数据),然后 viewControllerD(或任何其他 viewcontroller)需要数据,我如何从模型访问数据。在 viewControllerD 中创建模型实例会创建一个没有任何数据的新实例。
下面的代码解释了这个场景。
ViewControllerA
让 userdetails = UserDetails(json: self.userDetailsList!)
userdetailsarray.append(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(model) 附加到此数组中,并在多个视图控制器中使用此数组。另一种解决方案可能是模型类是单例的。 我正在寻找一个更乐观的解决方案。谢谢你
【问题讨论】:
-
我认为这个问题可以用很多不同的方式来回答……我更喜欢依赖注入,但还有很多其他的方式。
-
@Luca D'Alberti。了解如何使用依赖注入来实现这一点会很有帮助。
-
当您让 ViewControllerD 初始化它或将它传递给用户时...
-
您是否尝试过对数据使用单例?