NSFetchedResultsController: я должен всегда проверять fetchedObjects == nil перед вызовом -performFetch? - PullRequest
1 голос
/ 04 августа 2010

Я использую NSFetchedResultsController для моего табличного представления. Я вызываю -performFetch внутри метода -viewDidLoad моего контроллера.

Иногда мой контроллер выгружается, а затем перезагружается, что приводит к другому вызову -viewDidLoad и -performFetch. Я обнаружил, что это вызывает ошибку: «Ошибка NSFetchedResultsController: раздел« (ноль) »не найден в контроллере». Я обнаружил, что многократный вызов -performFetch вызывал проблему, и изменил метод my -viewDidLoad: для выполнения следующих действий:

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

Будучи новичком в Core Data, мне интересно, правильное ли это действие. Должен ли я на самом деле быть в состоянии вызвать -performFetch: более одного раза без ошибок? Должен ли я что-то делать в -viewDidUnload:?

Спасибо!

1 Ответ

3 голосов
/ 04 августа 2010

Обычно ничего не нужно делать с NSFetchedResultsController в -viewDidUnload:. Кроме того, проверка на ноль против -fetchedObjects обычно не стоит. Похоже, ваш код имеет другие проблемы с потоком. Вызов -performFetch: более одного раза нанесет ущерб производительности сам по себе, без каких-либо других негативных последствий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...