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

时间:2015-04-27 11:18:18

标签: ios objective-c xcode predicate

我有一个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];

不确定它是如何工作的?

2 个答案:

答案 0 :(得分:2)

试试这个

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

如果您想要执行不区分大小写,请使用'包含[c]' 而不是' ==' 搜索。 如果您要过滤任何其他媒体资源,请替换'标记'使用该属性名称。

答案 1 :(得分:0)

你需要做更多的事情:

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