2010-08-03 55 views
1

我爲我的表視圖使用NSFetchedResultsController。我在我的控制器的-viewDidLoad方法中調用了-performFetch。NSFetchedResultsController:我應該在調用-performFetch之前總是檢查fetchedObjects == nil嗎?

有時我的控制器被卸載,然後重新加載,導致另一個調用-viewDidLoad和-performFetch。我發現這導致了一個錯誤:「NSFetchedResultsController錯誤:部分'(null)'在控制器中找不到」。我發現,調用-performFetch多次這樣是造成問題,並修改了我-viewDidLoad:方法來做到以下幾點:

if(fetchedResCtrlr.fetchedObjects == nil) 
{ 
    NSError *error; 
    if (![fetchedResCtrlr performFetch:&error]) 
     ... 
} 

作爲新核心數據,我想知道如果這是正確的行動採取。我真的應該能夠調用-performFetch:不止一次沒有錯誤?我應該在-viewDidUnload中做些什麼:?

謝謝!

回答

3

通常情況下,-viewDidUnload:中的NSFetchedResultsController不需要做任何事情。此外,檢查零對-fetchedObjects通常是不值得的。聽起來你的代碼有其他流量問題。不止一次調用-performFetch:只會損害性能,沒有任何其他不良影響。

相關問題