41

フェッチ要求と述語を使用して、Core Data 永続ストアから一連のオブジェクトをフェッチしています。私の現在の述語は、属性が >= 特定の値であるかどうかを単純にチェックします。現在配列に保持されているオブジェクトを最終的に除外したいことを除いて、これはすべてうまく機能します。

基本的に、一連のオブジェクトを除外できるようにする必要があります。これを行うことができる唯一の方法はobjectID、管理対象オブジェクト配列からリストを取得し、述語で別の式を作成して、すべてのオブジェクトが確実に除外されるようにすることです。同じものはありませんobjectID。いいえ@"ANY records.objectID NOT IN %@", arrayOfObjectID

これどうやってするの?

4

3 に答える 3

76

のような述語

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (self IN %@)", arrayOfExcludedObjects];

フェッチ要求のエンティティは、配列内のオブジェクトのエンティティであり、必要なことを行う必要があります。これはもちろん、フェッチ要求の単一の述語で他の句と組み合わせることができます。

一般に、オブジェクトの比較 (例:self == %@またはself IN %@)objectIDは Core Data クエリで比較されます。引数は、NSManagedObject インスタンスまたはインスタンスのいずれかNSMangedObjectIDです。したがって、上記の述語形式は引数としてarrayOfExcludedObjectsorを取ることができます。[arrayOfExcludedObjects valueForKey:@"objectID"]

于 2009-06-02T19:14:07.057 に答える