我有一个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];
不确定它是如何工作的?
答案 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]];