2012-03-09 55 views
1

我执行的NSFetchRequest用NSFetchedResultsController。我设置了fetchBatchSize 5,和落实正确的委托方法:如何知道setFetchBatchSize是否正常工作?

- (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,那么是不是应该被调用一些的委托方法,我向下滚动表?或者另一种方法来确保它正在工作?

回答

1

您应该可以在fetchedResultsController的fetchedObjects数组上使用快速枚举,并测试每个NSManagedObject的isFault属性。如果你只要求它返回5,我想你应该看到5已经示例的isFault设置为NO,其余都示例的isFault设置为YES。

有关示例的isFault财产信息,请参见NSManagedObject Class Reference

1

取数据控制器应该知道有多少managedobject在总。我不知道你在哪里检查,但可能是你的204 此外,这些方法也越来越当您修改uitable数据源对象只调用的原因,他们什么都没有做表的滚动本身。

相关问题