Как мне узнать, работает ли setFetchBatchSize? - PullRequest
1 голос
/ 09 марта 2012

Я выполняю NSFetchRequest с помощью NSFetchedResultsController.Я установил fetchBatchSize равным 5 и реализовал подходящие методы делегата:

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath
- (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller

И я обязательно установил делегат моего fetchedResultsController на self.Однако я поместил оператор NSLog во все вышеупомянутые методы делегата, и ни один из них не вызывается.Мой fetchRequestController счетчик выборок равен 204, а размер пакета равен 5, так что не должно ли вызываться несколько методов делегата, когда я прокручиваю таблицу?Или как еще можно убедиться, что он работает?

Ответы [ 2 ]

1 голос
/ 16 марта 2012

Вы должны иметь возможность использовать быстрое перечисление в массиве fetchedObjects объекта fetchedResultsController и проверять свойство isFault каждого NSManagedObject.Если вы только запросили, чтобы он возвратил 5, я думаю, вы должны увидеть, что для 5 для isFault установлено значение NO, а для остальных для isFault установлено значение YES.

См. Справочник классов NSManagedObject для информациив свойстве isFault.

1 голос
/ 16 марта 2012

Контроллер выборки должен знать, сколько всего управляемых объектов.Я не знаю, где вы проверяете, но это может быть причиной вашего 204. Кроме того, эти методы вызываются только тогда, когда вы изменяете объекты в вашем удобном источнике данных, они не имеют ничего общего с прокруткой самой таблицы..

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