2017-08-20 6 views
0

コンテキスト内で既に実行されているNSManagedObjectを使用して、多対多関係を横断しながら述語を適用しようとしています。私はちょうど配列としてセットをキャスティングし、フィルタアルゴリズムを適用することを考えましたが、それはおそらくセットに500以上のオブジェクトが存在する可能性があるので、私が欲しくないフォールトの束を引き起こします。このNSSetの障害にNSManagedObjectでアクセスすると、述語またはフィルタをセットに適用してそれらの障害のみを実行できる可能性はありますか?完了したNSManagedObjectをトラバースしているときに、どのように述語を適用しますか?

答えて

1

を使用してBをフェッチ正しいです。 farさらに効率的に別のフェッチを実行します。私は同じ球場(100-2000エンティティ)内の関係サイズで個人的な経験からこれを学び、別のフェッチとその関係をフィルタリングすることとの間に10倍の速度差があることを発見しました。

0

代わりのフィルタリングobjectA.bを設定し、関係でオブジェクトをフィルタリング逆の関係に述語をフェッチ

又は

NSPredicate(format: "a CONTAINS %@ AND …", objectA) // to-many 
関連する問題