我想延迟加载第一个视图控制器,直到AppDelegate中的一个函数完成。该功能应为第一个视图控制器准备一些数据。但是现在,第一个视图在没有应该由AppDelegate中的函数准备的数据的情况下加载
什么是推荐方式或示例?请。
答案 0 :(得分:1)
您是否可以将获取数据的代码移至viewControllers“viewDidLoad”方法?
在视图控制器进入内存并且元素可访问之后,但在它实际变为可见之前,会调用此方法。您在此处执行的任何处理都必须在内容显示之前完成,并且是我从服务器等处获取内容的方法。
如果处理需要很长时间,那么也可以使用微调器让用户知道正在发生的事情,因为在处理完成之前不会显示任何内容,用户可能认为它已挂起。
答案 1 :(得分:0)
延迟创建对象直到它们被引用的一种方法称为延迟初始化。在objective-c中,您可以通过覆盖属性的getter来实现此目的。这是一个片段:
假设:
@property (nonatomic, strong) NSObject *someObject;
您可以实现
- (NSObject *)someObject {
if (!_someObject) {
_someObject = [NSObject new];
}
return _someObject;
}
这样,someObject仅在首次引用时创建。希望这有帮助!