2017-08-15 56 views
0

以下是我的代碼片段。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表中的所有行

回答

0

我想拿到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