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 回答