2012-05-07 11 views
1

私は、coredata dbからデータをフェッチするときにsetFetchBatchSizeが使用される理由とそのメリットを知りたいと思います。私は現在、私のコアデータdbにNSDataブロブをドロップしているので、私に当てはまるのか、それともnsarraysに使用されているのか、それらの行に沿ったものなのか疑問に思っています。coredata setFetchBatchSize

私はリンゴのドキュメントで言うことを読んだが、それほど進んでいない。

受信機のバッチサイズ。バッチサイズ0は、 無限大として処理され、バッチフォールディングの動作が無効になります。

現在、私はsetFetchBatchSizeを無効にしていますが、すべてがまだ動作しているように見えますが、有効にすると恩恵を受けることができますか?

答えて

5

テーブル(エンティティ)に多数のレコードがあり、フェッチがこのテーブルから多くのレコードを取得するように設定されている場合、フォールトはアプリケーションがメモリを保持できる方法です。これらのレコードをすべて取得して同時にメモリにロードするのではなく、fetchBatchSizeは検索されるレコードの数をその制限に制限し、残りのレコードを破棄します。必要なときにのみフェッチされます。 fetchBatchSizeを設定すると、このフォールトは自動的に処理されます。

これは少し物事を明確にすることを望みます。