fetchLimit が 20 の fetchRequest で NSFetchedResultController を初期化した場合、ユーザーが最初の 20 件の結果をスクロールした場合、追加で performFetch を呼び出す必要がありますか? または、自動的に performFetch が呼び出されますか?
1 に答える
を使用している場合fetchLimit
は更新されませんが、最初の 20 件の結果とそれ以上の自動更新が必要な場合は、 を使用できsetBatchSize
ます20
。
詳細については、以下を参照してください。
fetchedObjects 配列のカウントは、永続ストアからの変更を更新しないため、やりたいことではないかもしれません。NSFetchedResultsController ドキュメントから:
結果の配列には、フェッチ要求 (fetchRequest) によって指定され、その述語に一致するエンティティのインスタンスのみが含まれます。(フェッチ リクエストに述語がない場合、結果配列には、フェッチ リクエストで指定されたエンティティのすべてのインスタンスが含まれます。)
結果配列は、永続ストア内の状態ではなく、コントローラーの管理対象オブジェクト コンテキスト内の管理対象オブジェクトのメモリ内状態を反映します。ただし、返された配列は、管理対象オブジェクトが挿入、変更、または削除されても更新されません。
20 個のオブジェクトのみをフェッチする場合は、NSFetchRequest のフェッチ制限を設定します。メモリに 20 個のオブジェクトのみを保持したい場合は、NSFetchRequest オブジェクトの setBatchSize を使用します。