我正在使用NSFetchedResultsController作为我的表视图。我在控制器的-viewDidLoad方法中调用了-performFetch。
有时我的控制器被卸载然后重新加载,导致另一次调用-viewDidLoad和-performFetch。我发现这导致了一个错误:“在控制器中找不到NSFetchedResultsController错误:section'(null)'”。我发现像这样多次调用-performFetch会导致问题,并修改了我的-viewDidLoad:方法来执行以下操作:
if( fetchedResCtrlr.fetchedObjects == nil )
{
NSError *error;
if ( ![fetchedResCtrlr performFetch:&error] )
...
}
对核心数据不熟悉,我想知道这是否是正确的行动。我是否真的能够多次调用-performFetch:没有错误?我应该在-viewDidUnload中做些什么:?
谢谢!
答案 0 :(得分:3)
通常情况下,NSFetchedResultsController
中的-viewDidUnload:
无需执行任何操作。此外,检查-fetchedObjects
的nil通常是不值得的。听起来你的代码有其他流量问题。多次调用-performFetch:
只会损害性能本身,而不会产生任何其他不良影响。