使用NSFetchedResultsController如何确保只显示100行

时间:2011-11-10 09:28:06

标签: iphone xcode nsfetchedresultscontroller

request.fetchLimit = 100;
request.fetchBatchSize = 100;

是否真的使用该函数来限制tableView使用NSFetchedResultsControllerDelegate的行数?

但问题是..有时表会显示超过100行,但是当我更改页面并返回表格时,表格只会显示100行,它怎么样?我不希望表格显示超过100个。

先谢谢你。

另一种方法是做

是要更新

 id <NSFetchedResultsSectionInfo> sectionInfo = [[self.FetchController sections] objectAtIndex:section];
    CalledRowCountingNotYetCallRowForSection=true;
    [self.tableViewA setBounces:YES];


    if([sectionInfo numberOfObjects]>100){
        //[Timer searchCriteriaChanged];
        CLog(@"Something Wrong This NumberOfRow: %d", [sectionInfo numberOfObjects]);
    }
    else{
    }
    return [sectionInfo numberOfObjects];

这样当numberOfObjects大于100时,则行数变为100.但是,这会干扰

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject

那你怎么做的?

1 个答案:

答案 0 :(得分:0)

您可以通过覆盖表格视图数据源的 numberOfSectionsInTableView numberOfRowsInSection 函数来限制可用行数,分别返回1和100。

您是否使用 SQLStore 作为表格的基础?根据apple文档(http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/CoreDataFramework/Classes/NSFetchRequest_Class/NSFetchRequest.html#//apple_ref/doc/c_ref/NSFetchRequest),fetchLimit仅适用于SQL存储。