Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSPredicate可筛选NSMUTABLEARRY中的联系人号码_Objective C_Ios7_Nsmutablearray_Nspredicate - Fatal编程技术网

Objective c NSPredicate可筛选NSMUTABLEARRY中的联系人号码

Objective c NSPredicate可筛选NSMUTABLEARRY中的联系人号码,objective-c,ios7,nsmutablearray,nspredicate,Objective C,Ios7,Nsmutablearray,Nspredicate,我正在从通讯簿中获取联系人,并将其添加到自定义类Person中。 现在,对于通讯簿中的每个联系人,可能都有多个号码,因此我使用了NSMutableArray phoneNumbers,现在我需要搜索联系人并获取此人的姓名 我试过这样做: // Person.h @interface Person : NSObject @property (nonatomic, strong) NSString *firstName; @property (nonatomic,

我正在从通讯簿中获取联系人,并将其添加到自定义类Person中。 现在,对于通讯簿中的每个联系人,可能都有多个号码,因此我使用了NSMutableArray phoneNumbers,现在我需要搜索联系人并获取此人的姓名

我试过这样做:

    //  Person.h

    @interface Person : NSObject
    @property (nonatomic, strong) NSString *firstName;
    @property (nonatomic, strong) NSMutableArray *phoneNumbers;
    @property (nonatomic, strong) UIImage *personImage;
    @property (nonatomic, strong) NSNumber* recordID;


    - (id)initWithPerson:(Person *)person;

    @end

我在过滤数组中得到零。请建议我如何解决此问题。

您应该使用
contains
而不是
来比较数组的内容,而不是数组本身。

数组包含什么(字符串)以及什么是
contactNumber
?它应该是完全匹配的,还是部分匹配的?此时将完整数组与字符串进行比较。联系人号码是包含需要搜索的电话号码的字符串。应该是局部的你能再帮我一点吗?我在通讯簿中有这样的联系人:8900012323此号码没有国家代码,我正在搜索的号码我,e 918900012323有国家代码现在我该如何查找此联系人?请尝试
任何电话号码都包含%@
。我现在无法尝试,因此您可能需要对其稍加修改,或者使用
谓词WithBlock:
并编写比较。我尝试了任何一种方法,但没有进行过滤。。我也试过喜欢,但它给出了数组“'Can't do regex matching on object ios”(不能在对象ios上进行正则表达式匹配),如果您稍后可以尝试查看,这会非常有用,PhoneNumber是可变数组,因此我无法在那里使用正则表达式,我想,请尝试让我知道使用
predicateWithBlock:
并编写逻辑来比较数组中的每个项,那么你就可以完全控制比较了。
NSPredicate *predicate =
[NSPredicate predicateWithFormat:@"phoneNumbers like %@",contactNumber];
NSArray *filtered  = [addressBookData filteredArrayUsingPredicate:predicate];