将NSPredicate应用于字典IOS中的Array

时间:2015-11-10 08:49:42

标签: ios iphone ios9 nspredicate

@interface Contact : NSObject

@property (assign, nonatomic) NSInteger *cid;
@property (strong, nonatomic) NSString * name;
@property (strong, nonatomic) NSMutableArray *arrPhone;

@end

我为上面的字典创建了“Contact”NSObject,它有arrPhone数组。

现在我有一个包含联系对象列表的数组。现在我需要那些电话号码包含以@“11”(我的搜索字符串)

开头的号码的联系对象

我尝试了以下内容:

NSPredicate *p1 =[NSPredicate predicateWithFormat:@"arrPhone contains[cd] %@)",searchText];

但它不起作用。请帮忙。

2 个答案:

答案 0 :(得分:1)

由于arrPhone本身就是一个数组,因此您需要测试其成员是否符合您的搜索条件,而不是它是否符合您的搜索条件。因此,修改谓词以使用ANY

NSPredicate *p1 =[NSPredicate predicateWithFormat:@"ANY arrPhone contains[cd] %@)",searchText];

答案 1 :(得分:0)

试试这个

[collection[@"phone"] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF beginswith[c] '11'"]];