setFetchBatchSize获取消息中的所有行表
问题描述:
以下是我的代码片段。setFetchBatchSize获取消息中的所有行表
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
表中的所有行
答
我想拿到5对象应设置取上限为5
[fetchRequest setFetchLimit:5];
若要说20条,你在numberOfItems = 20的参数值传递,做一个函数内你的工作,它只是一个想法,你可以让你自己函数,我想你应该只使用fetchLimit
-(void) getRecordsFor:(NSInteger) numberOfRecords {
....
[fetchRequest setFetchLimit: numberOfRecords];
[fetchRequest setSortDescriptors:sortDescriptors];
[NSFetchedResultsController deleteCacheWithName:@“Chats”];
...
}
setFetchLimit将起作用。但为了加载更多的功能,我们应该使用setFetchBatchSize – Jeff
@Jeff我猜你需要同时使用,setFetchBatch大小将只保留内存中的对象,但要获得5个对象的数组,你可以使用fetchLimit – 3stud1ant3
谢谢你的回复。那么我将如何加载上一组消息(加载早期消息) – Jeff