2017-08-15 3 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を取得すると思いますオブジェクトあなたは20件のレコードを言う取得するには5

[fetchRequest setFetchLimit:5]; 

としてフェッチ制限を設定する必要があり、あなたがnumberOfItemsのパラメータ値を渡す= 20、関数内で作業を行う、そのわずかなアイデア、あなたがあなた自身作ることができます関数、私はあなただけfetchLimitを使用する必要がありますね

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

[fetchRequest setFetchLimit: numberOfRecords]; 

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

setFetchLimitが動作します。しかし、より多くの機能をロードするには、setFetchBatchSizeを使用する必要があります。 – Jeff

+0

@Jeff両方を使う必要があると思います。setFetchBatchのサイズはオブジェクトをメモリに保持するだけですが、fetchLimitを使用する5つのオブジェクトの配列を取得します。 – 3stud1ant3

+0

ありがとうございます。それでは、以前のメッセージをロードする方法(以前のメッセージをロードする) – Jeff

関連する問題