0

我有一个属性为的核心数据实体字段ID。我想在所有字段实体中搜索 ID == 1、2 或 3。

如何在不创建长附加字符串的情况下将数组添加到 NSPredicate,例如:

NSArray *IDArray = @[@1, @2, @3];

NSMutableString *predicateString = [NSMutableString string];

for (NSNumber *ID in IDArray) {
    [predicateString appendString:[NSString stringWithFormat:@"ID == %@, ID]];
}
4

1 回答 1

2

这应该有效:

NSArray *IDArray = @[@1, @2, @3];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ID IN %@", IDArray];

备注:您不应该使用字符串格式化函数来组合谓词。采用

 [NSCompoundPredicate orPredicateWithSubpredicates:...]

和类似的方法。原因是字符串和谓词有不同的规则如何扩展格式说明符。

于 2013-03-06T18:12:40.833 回答