Ios 需要在字符串中使用单个子字符串

Ios 需要在字符串中使用单个子字符串,ios,objective-c,nsstring,Ios,Objective C,Nsstring,目前,我正在访问iPhone通讯录中的联系人数据,目前为止,一切正常,99%。联系人的电话号码如下打印到日志中:3095679973 但是,如果一个联系人有多个电话号码,例如3,如果您输入了移动电话、工作电话和家庭电话。。。然后联系人的号码打印到日志中,如下所示: 4422697237, 8145537755, 7195599505 NSLog(@"Here are the phone number(s) for this contact: %@", numberValues); 我需要设置

目前,我正在访问iPhone通讯录中的联系人数据,目前为止,一切正常,99%。联系人的电话号码如下打印到日志中:
3095679973

但是,如果一个联系人有多个电话号码,例如3,如果您输入了移动电话、工作电话和家庭电话。。。然后联系人的号码打印到日志中,如下所示:

4422697237,
8145537755,
7195599505
NSLog(@"Here are the phone number(s) for this contact: %@", numberValues);
我需要设置一些类型的逻辑,以便如果通讯簿中的联系人确实有多个电话号码,如上文所述,那么电话号码将被分开,以便我们可以单独使用它们

关键是我正在向我的数据库发送一个查询,查看它是否包含打印到日志中的电话号码,此时我只能用逗号查询所有3个号码,这将导致数据库说它们都不匹配,而实际上它们都不匹配

以下是我最初访问和使用电话号码数据的方式:

ABMultiValueRef *phoneNumber = ABRecordCopyValue(contactPerson, kABPersonPhoneProperty);

NSMutableArray *numbers = [NSMutableArray array];

//NSLog(@"The count: %ld", ABMultiValueGetCount(phoneNumber));

        NSString *number = (__bridge_transfer NSString*)ABMultiValueCopyArrayOfAllValues(phoneNumber);

        // Do what you want with the number

        [numbers addObject:number];

        NSString *numberValues = [[NSString alloc]initWithFormat:@"%@", number];
然后我打印numberValues对象中包含的数据,如下所示:

4422697237,
8145537755,
7195599505
NSLog(@"Here are the phone number(s) for this contact: %@", numberValues);

谢谢您的帮助。

通讯录中的电话号码是一个多值属性。因为您使用的是
ab多值CopyArrayFallValues
,所以您将它们全部复制到一个字符串中,格式类似于数组,并带有逗号

相反,您可能应该遍历所有电话号码并将其复制到实际数组中(每个电话号码将包含一个单独的字符串):

ABMultiValueRef allPhoneNumbers=(NSString*)ABRecordCopyValue(person,kABPersonPhoneProperty);
NSMUTABLEARRY*电话号码=[NSMUTABLEARRY new];
对于(CFIndex i=0;i
输出数字时,数字仍然是字符串吗?或者它是数组?我不太确定,因为当我实例化名为“number”的对象时,我使用了一个多值CopyArrayFallValues,我认为这给了我们一个数组,但当我实例化名为“numberValues”的对象时,通过使用initWithFormat,我认为数组将存储为单个字符串。@Joshua,无论在我输出它时它是字符串还是数组,如果您帮助我并发布一些代码,我将尝试它,然后我们可以从那里开始。谢谢。我100%肯定这是一个字符串,因为在我的代码中没有粘贴到这里的其他区域,我可以通过替换numberValues对象上的stringByReplacingOccurrencesOfString和rangeOfString方法调用来使用stringByReplacingOccurrencesOfString。