1

私は少しCoreData初心者ですが、ゆっくりと理解しています。次のコードに問題があります。

NSArray * artisteIds = [@"1,2,3,4" componentsSeparatedByString:@","];
predicate = [NSPredicate predicateWithFormat:@"(artisteId IN %@)", artisteIds]; 

私の Artiste マネージド オブジェクトには、artisteId の NSNumber フィールドがあり、オブジェクト コンテキスト内のすべての Artistes をループしました。ID が 1 ~ 420 のオブジェクトが確実に存在します。

しかし、私のヘルパー メソッドは常にそのクエリで空の結果セットを返します

NSMutableArray* mutableFetchArtistes = [CoreDataHelper searchObjectsInContext:@"Artiste" :predicate :@"title" :YES :managedObjectContext];      

助言がありますか?

それが機能することをテストするために、私は以下を使用し、3つの結果を得ました

predicate = [NSPredicate predicateWithFormat:@"(artisteId = 1) or (artisteId = 2) or (artisteId = 3)", artisteIds];
4

1 に答える 1

1

配列にはオブジェクトartisteIdsが含まれている必要があると思います。NSNumber

NSArray *artisteIds = [NSArray arrayWithObjects:
    [NSNumber numberWithInteger:1],
    [NSNumber numberWithInteger:2],
    [NSNumber numberWithInteger:3],
    [NSNumber numberWithInteger:4],
    nil];

NSSetではなくを使用することもできますNSArrayが、違いがあるかどうかはわかりません。

于 2010-02-06T13:42:00.743 に答える