我只想用用户输入的关键字过滤自定义对象的NSMutableArray。 示例:当用户输入“a”字母时,我想输出displayName包含字母“a”的所有对象。 为此,我确实喜欢这样:
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"display_name CONTAINS[cd] %@", textField.text];
NSArray *filtered = [[self.contacts allValues] filteredArrayUsingPredicate:predicate];
问题是我必须输入整个display_name来获得结果,而不仅仅是一个字母。 例如:如果有“亚伯拉罕”,“亚历山大”,“詹姆斯”,你点击“j”,我想输出它的属性名称为“詹姆斯”的对象,而不必输入整个“詹姆斯” “得到它的话。 我的谓词肯定存在问题,谢谢你的帮助。
答案 0 :(得分:1)
这个技巧就是使用通配符。参数中标有 * 标记。即:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"display_name LIKE[cd] %@", [NSString stringWithFormat:@"*%@*", textField.text]];