0

好吧,为了获得电话属性ABAddressBook,我使用了一个循环。

编辑:我试过的代码:

    ABMultiValueRef phones = ABRecordCopyValue(contactPerson, kABPersonPhoneProperty);

                        for (NSUInteger j = 0; j < ABMultiValueGetCount(phones); j++) {

            NSMutableString *phone = [CFBridgingRelease(ABMultiValueCopyValueAtIndex(phones, j)) mutableCopy];
if ([phone hasPrefix:@"06"] || [phone hasPrefix:@"07"]){
    person.number = phone;
    }

但我不认为这是最好的选择..?

也许是这样的:

if (ABMultiValueRef hasprefix...06 ||  07){
person.number = phones
}

当联系人有多个电话号码值时,我可以用ABMultiValueGetCount(phones).

好吧,现在举个例子:

ABAddressBook联系人 « Peter » 在(NSLog电话)中有 5 个电话号码:

02 35 00 00 00

07 00 00 00 00

+1(919)949-8234

06 00 00 00 00

9009498923

我想对这些数字进行排序,并且只存储一个NSString

如果数字以 07 开头 -> 接受。(分配给NSString

如果数字以 06 开头 —> 接受。(分配给NSString

如果其他号码 -> 不分配。

如果他们是两个电话号码:一个是 06,一个是 07,取最后一个注册ABAddressBook的号码(或者如果这不可能/太复杂,取 07 开头的号码)。

我想为ABAddressBook. 并且每个联系人只有一个号码(如果号码不是以 06 或 07 开头,则为 0)。

在我的例子中:

彼得有这个号码:07 00 00 00 00

4

1 回答 1

1

我发现自己的最佳答案:

ABMultiValueRef phones = ABRecordCopyValue(contactPerson, kABPersonPhoneProperty);
                            for (NSUInteger j = 0; j < ABMultiValueGetCount(phones); j++) 
{   
if ([CFBridgingRelease(ABMultiValueCopyValueAtIndex(phones, j)) hasPrefix:@"07"] 
|| [CFBridgingRelease(ABMultiValueCopyValueAtIndex(phones, j)) hasPrefix:@"06"] 
||[CFBridgingRelease(ABMultiValueCopyValueAtIndex(phones, j)) hasPrefix:@"+33"])
        {

}
}
于 2015-09-25T01:01:41.237 回答