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數據源對象只調用的原因,他們什麼都沒有做表的滾動本身。

相關問題