2015-06-10 120 views
0

我想延遲加載第一視圖控制器,直到AppDelegate中的函數完成。該函數應爲第一個視圖控制器準備好一些數據。但現在,第一個視圖加載時沒有應用AppDelegate中的函數準備的數據。如何延遲加載第一個視圖控制器?

什麼是推薦的方式或示例?請。

回答

1

你應該將獲取數據的代碼移動到viewControllers「viewDidLoad」方法嗎?

在視圖控制器進入內存並且元素可訪問之後,但在它實際變爲可見之前調用此方法。您在這裏執行的任何處理都必須在內容顯示之前完成,並且是我從服務器獲取內容的方法的地方。

如果處理需要很長時間,那麼也可以使用微調器讓用戶知道發生了一些事情,因爲在處理完成之前什麼都不會顯示,用戶可能會認爲它掛起。

0

延遲創建對象直到被引用的一種方法稱爲延遲初始化。在Objective-C中,您可以通過重寫屬性的getter來完成此操作。這裏有一個片段:

假設:

@property (nonatomic, strong) NSObject *someObject; 

,可以實現任意

- (NSObject *)someObject { 
    if (!_someObject) { 
     _someObject = [NSObject new]; 
    } 
    return _someObject; 
} 

這樣,當它第一次被引用someObject只被創建。希望這可以幫助!

相關問題