使用谓词查找字符串值是否存在
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' 替换为该 属性 名称。
我有一个 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' 替换为该 属性 名称。