[英]NSPredicate to compare identical string arrays?
是否可以使用nspredicate比较一个NSArray是否完全等于另一个NSArray字符串? 我需要通过谓词来使用此穹顶,因为它可能会将此谓词添加到复合谓词中。
我要比较的数组是NSDictionary的属性。
所以答案是两者的混合,我确实使用了predicatewithformat,但是在内部字符串中很有创意,灵感来自@akashivskyy和@avi
[predicatesArray addObject:[NSPredicate predicateWithFormat:@"ANY dynamic.values == %@", arr]];
编辑:作为(部分)由Avi建议,您可以使用相等谓词:
NSArray *otherArray = @[ @"foo", @"bar" ];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self == %@", otherArray];
[predicate evaluateWithObject:@[ @"foo", @"bar" ]]; // YES
[predicate evaluateWithObject:@[ @"baz", @"qux" ]]; // NO
另外,如果以后对格式字符串有任何麻烦,则可以始终使用块谓词来执行自己的逻辑:
NSArray *otherArray = @[ @"foo", @"bar" ];
NSPredicate *predicate = [NSPredicate predicateWithBlock:^(NSArray *evaluatedArray, NSDictionary<NSString *, id> *bindings) {
return [evaluatedArray isEqualToArray:otherArray];
}];
// use the predicate
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.