2010-08-03 54 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:只会损害性能,没有任何其他不良影响。

相关问题