使用谓词查找字符串值是否存在

Using predicate to find if string value exists

我有一个 NSMutableArray 对象,它们具有分配给它们的标签属性。我正在尝试查找这些对象中是否有分配给它们的字符串值 "a" 的标记。

到目前为止我的代码:

for (Object *object in self.array)
    {
        NSDictionary *attrs = [object propertyValue:@"attrs"];
        NSString *tag = attrs[@"tag"];
    }

我可以这样做吗:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"a"];
NSArray *results = [self.array filteredArrayUsingPredicate:predicate];

不确定它是如何工作的?

您需要做更多类似的事情:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.property_name contains[c] '%@'", @"a"];
NSArray  *result = [NSMutableArray arrayWithArray:[self.array filteredArrayUsingPredicate:predicate]];

试试这个

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tag == %@", @"a"];
NSArray  *result = [NSMutableArray arrayWithArray:[self.array filteredArrayUsingPredicate:predicate]];

如果要执行不区分大小写的搜索,请使用 'contains[c]' 而不是 '=='。 如果您想筛选任何其他 属性,请将 'tag' 替换为该 属性 名称。