setFetchBatchSize获取消息表中的所有行

时间:2017-08-15 06:05:19

标签: core-data nsfetchedresultscontroller

以下是我的代码段。

NSSortDescriptor *sortSequence = [[NSSortDescriptor alloc]
                                      initWithKey:@"date_added" ascending:YES];
 NSArray *sortDescriptors =[NSArray arrayWithObjects:sortSequence,nil]; 
[fetchRequest setFetchBatchSize:5];
[fetchRequest setSortDescriptors:sortDescriptors];
[NSFetchedResultsController deleteCacheWithName:@“Chats”];
NSFetchedResultsController *theFetchedResultsController =[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext: managedObjectContext sectionNameKeyPath:@"messageSectionKey" cacheName:@"Chats"];

在我的列表中,我想实现加载更多功能。我想根据键date_added进行排序。 messageSectionKey是coredata类中的getter方法,它将基于date_added返回昨天,今天等 ...但是在获取而不是加载5之后,它将加载所有行我的Message

1 个答案:

答案 0 :(得分:0)

我想要获得5个对象,你应该将获取限制设置为5

[fetchRequest setFetchLimit:5];

要说出20条记录,你传入numberOfItems = 20的参数值,在一个函数里面做你的工作,它只是一个想法,你可以自己创建函数,我猜你应该只使用fetchLimit

-(void) getRecordsFor:(NSInteger) numberOfRecords {
....

 [fetchRequest setFetchLimit: numberOfRecords];

[fetchRequest setSortDescriptors:sortDescriptors];
[NSFetchedResultsController deleteCacheWithName:@“Chats”];
...
}