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”]; 
... 
} 
+0

setFetchLimit将起作用。但为了加载更多的功能,我们应该使用setFetchBatchSize – Jeff

+0

@Jeff我猜你需要同时使用,setFetchBatch大小将只保留内存中的对象,但要获得5个对象的数组,你可以使用fetchLimit – 3stud1ant3

+0

谢谢你的回复。那么我将如何加载上一组消息(加载早期消息) – Jeff