UITableView numberOfRowsInSection вызывается до того, как возвращаются данные Core CoreHandler? - PullRequest
0 голосов
/ 18 января 2012

Я создаю простое приложение с использованием Core Data (UIManagedDocument) вместе с UITableView.В настоящее время в TableViewController я проверяю, существует ли база данных, и создаю или открываю по мере необходимости, используя:

UIDocument saveToURL:forSaveOperation:completionHandler:

OR 

UIDocument openWithCompletionHandler:

Проблема, с которой я сталкиваюсь, заключается в том, что мои методы источника данных UITableView вызывают до обработчика завершения (который устанавливаетup (fetchedResultsController) возвращает.Как следствие, когда UITableView вызывает:

UITableView tableView:numberOfRowsInSection:

fetchedResultsController (где он получает количество строк) по-прежнему равен нулю.

Насколько я понимаю, вы должны создать / открыть документ для настройкиfetchedResultsController, так как для него требуется допустимый managedObjectContext.Это мое первое знакомство с Базовыми данными, поэтому любая помощь / информация будут высоко оценены.

...

РЕДАКТИРОВАТЬ : я посмотрел на это немного больше,и хотя я еще не понял этого, я думаю, что это всего лишь случай перемещения вещей и проверки того, что все происходит в более правильном порядке.

1 Ответ

1 голос
/ 18 января 2012

Ваш метод делегата таблицы может сделать это:

 numberOfRowsInSection {
      if ( myFetchedResultsController ) { return <WhateverYouNormallyDoHere>; }
      return 0;
 }

и затем в вашем обработчике завершения просто обновите таблицу

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