【发布时间】:2016-11-04 14:37:18
【问题描述】:
我想检查我的字符串是否包含在我的 NSDictionary 的 NSArray 的任何两个元素中。可以说,
mystring = @"I love stackoverflow";
array = @{@[id:104, name: @"love", quality: @"stackoverflow"],
@[id:104, name: @"love123", quality: @"stackoverflow"],
@[id:104, name: @"love435", quality: @"stackoverflow"],
@[id:104, name: @"love", quality: @"stackoverflow234"]];
在这种情况下,我希望我的谓词挑选出数组的第一个元素,因为它包含在我的字符串中。
我试过了:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ contains[c] SELF.name AND %@ contains[c] SELF.quality",mystring, mystring];
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
PS:“LIKE”在这里也不起作用。
【问题讨论】:
-
您的谓词没问题,可以使用您在此处提供的数据(修复语法后)。
-
令人惊讶的是,我的 Xcode 昨天显示我的 filteredArray 计数为零。但今天它工作正常。它也更早地工作。这是正确的代码。谢谢@Willeke。
标签: objective-c nsarray nsdictionary nspredicate