我目前依赖的事实是UIApplication是一个单例,我将模型作为委托的属性访问,但这对我来说似乎是一个很长的链条。
Controller-> UIApplication-> delegate-> Model( - >要设置的特定属性)
答案 0 :(得分:2)
一般来说,视图控制器与其模型类通信的最佳方法是使用模型类初始化视图控制器。例如:
- (id)initWithModel:(MYModel *)aModel {
self = [super initWithNibName:@"ModelViewController" bundle:nil];
if (self != nil) {
self.model = aModel;
}
return self;
}
特殊情况还有其他方法,但这是最好的默认方法。
答案 1 :(得分:0)
无论创建视图控制器对象是什么,所需的模型对象都可以链接它们。例如,根控制器可以初始化模型,然后是需要模型的视图控制器,然后使用视图控制器的属性来提供对模型的访问。
根级控制器通常是应用程序委托或视图控制器本身。如果您只想将应用程序委托中的访问链缩短为时间/空间优化,则可以在首次遵循正常链之后保留/缓存单例模型以进行访问。