好吧,为了获得带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)
来计算。
好吧,现在举一个例子:
联系人«Peter»在ABAddressBook
(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
答案 0 :(得分: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"])
{
}
}