繁体   English   中英

NSPredicate比较相同的字符串数组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM