[英]NSPredicate with a NSArray of NSNumbers (Core Data)
我有Core Data实体Field,其属性为ID
。 我想在ID == 1,2或3中搜索所有Field实体。
如何将数组添加到NSPredicate,而不是创建一个长附加字符串,如:
NSArray *IDArray = @[@1, @2, @3];
NSMutableString *predicateString = [NSMutableString string];
for (NSNumber *ID in IDArray) {
[predicateString appendString:[NSString stringWithFormat:@"ID == %@, ID]];
}
这应该工作:
NSArray *IDArray = @[@1, @2, @3];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ID IN %@", IDArray];
备注:您永远不应该使用字符串格式化函数来组合谓词。 采用
[NSCompoundPredicate orPredicateWithSubpredicates:...]
和类似的方法。 原因是字符串和谓词具有不同的规则,如何扩展格式说明符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.