我想延遲加載第一視圖控制器,直到AppDelegate中的函數完成。該函數應爲第一個視圖控制器準備好一些數據。但現在,第一個視圖加載時沒有應用AppDelegate中的函數準備的數據。如何延遲加載第一個視圖控制器?
什麼是推薦的方式或示例?請。
我想延遲加載第一視圖控制器,直到AppDelegate中的函數完成。該函數應爲第一個視圖控制器準備好一些數據。但現在,第一個視圖加載時沒有應用AppDelegate中的函數準備的數據。如何延遲加載第一個視圖控制器?
什麼是推薦的方式或示例?請。
你應該將獲取數據的代碼移動到viewControllers「viewDidLoad」方法嗎?
在視圖控制器進入內存並且元素可訪問之後,但在它實際變爲可見之前調用此方法。您在這裏執行的任何處理都必須在內容顯示之前完成,並且是我從服務器獲取內容的方法的地方。
如果處理需要很長時間,那麼也可以使用微調器讓用戶知道發生了一些事情,因爲在處理完成之前什麼都不會顯示,用戶可能會認爲它掛起。
延遲創建對象直到被引用的一種方法稱爲延遲初始化。在Objective-C中,您可以通過重寫屬性的getter來完成此操作。這裏有一個片段:
假設:
@property (nonatomic, strong) NSObject *someObject;
,可以實現任意
- (NSObject *)someObject {
if (!_someObject) {
_someObject = [NSObject new];
}
return _someObject;
}
這樣,當它第一次被引用someObject只被創建。希望這可以幫助!