使用关键字过滤数组

时间:2014-09-01 15:15:06

标签: ios nsmutablearray nspredicate

我只想用用户输入的关键字过滤自定义对象的NSMutableArray。 示例:当用户输入“a”字母时,我想输出displayName包含字母“a”的所有对象。 为此,我确实喜欢这样:

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"display_name CONTAINS[cd] %@", textField.text];
NSArray *filtered = [[self.contacts allValues] filteredArrayUsingPredicate:predicate];

问题是我必须输入整个display_name来获得结果,而不仅仅是一个字母。 例如:如果有“亚伯拉罕”,“亚历山大”,“詹姆斯”,你点击“j”,我想输出它的属性名称为“詹姆斯”的对象,而不必输入整个“詹姆斯” “得到它的话。 我的谓词肯定存在问题,谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

这个技巧就是使用通配符。参数中标有 * 标记。即:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"display_name LIKE[cd] %@", [NSString stringWithFormat:@"*%@*", textField.text]];