コアデータ(iPhone)-関係全体でフェッチ結果を制限する
-
05-07-2019 - |
質問
最近、iPhoneのコアデータを調べていますが、文献で答えを見つけることができなかったクエリが1つあります。
Purchase オブジェクトと多対多の関係を持つ User モデルオブジェクトがあると想像してみましょう。 ユーザーには何千もの購入があります。
これまでに見たすべての情報は、その関係で実行されたフェッチ操作は、特定の User 。
明らかに、取得する Purchase オブジェクトの数を制限する何らかの方法があれば好むでしょう:
1)何らかの基準を課します(例:£ 1000以上の購入のみ)。または
2)上記が不可能な場合にのみバッチでフェッチします。
上記は可能ですか? iPhoneのメモリが限られているため、不必要にフェッチされた何千ものオブジェクトで過負荷になる危険性があります。
ご返信いただきありがとうございます。
解決
ユーザーオブジェクトをフェッチすると、そのPurchaseオブジェクトとの関係は障害になり、アクセスされた場合にのみロードされるというのが私の理解です。
代わりに、他の基準でユーザーとチェックを指定する述語でPurchaseオブジェクトをフェッチできます。
そうは言っても、パフォーマンスの問題に多くの時間を費やす前に、(デバイス上で)現実的なユースケースを確実にテストします。 iPhoneとCore Dataの効率は驚くかもしれません。
他のヒント
- 取得したプロパティを使用
-
NSFetchedResultsController
を使用します
これらへの回答と次に行う質問は、 iPhone向けコアデータプログラミングガイド。
所属していません StackOverflow