带数组的核心数据获取请求

Run*_*oop 3 cocoa cocoa-touch core-data objective-c

我正在尝试使用谓词设置获取请求以获取商店中的记录,其标识符属性与谓词中指定的标识符数组匹配,例如

NSString *predicateString = [NSString stringWithFormat:@"identifier IN %@", employeeIDsArray];
Run Code Online (Sandbox Code Playgroud)

employeeIDsArray包含许多与商店中的ID匹配的NSNumber对象.但是,我收到错误"无法解析格式字符串".如果它用于过滤数组,则此类型的谓词有效,但如上所述,对于核心数据提取失败.我应该如何设置谓词?

Dav*_*ong 11

NSPredicate不使用像NSString这样的格式.因此,使用预生成的predicateString创建谓词的结果将不是有效的谓词.

你必须使它成为一个实际的谓词:

NSPredicate * predicate = [NSPredicate predicateWithFormat:@"identifier IN %@", employeeIDsArray];
[fetchRequest setPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

有关谓词格式的更多信息,请参阅文档.