因此,我有一种方法可以从iPhone上的地址簿中获取所有联系人电话号码,但有没有办法获取电话号码标签?例如,你可以这样做: 从地址簿中获取iPhone电话号码标签
而我会修改我的方法来打印出标签(如iPhone/Home/mobile/etc)。
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef all = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex n = ABAddressBookGetPersonCount(addressBook);
for(int i = 0 ; i < n ; i++)
{
ABRecordRef ref = CFArrayGetValueAtIndex(all, i);
NSString *firstName = (NSString *)ABRecordCopyValue(ref, kABPersonFirstNameProperty);
NSLog(@"Name %@", firstName);
ABMultiValueRef *phones = ABRecordCopyValue(ref, kABPersonPhoneProperty);
for(CFIndex j = 0; j < ABMultiValueGetCount(phones); j++)
{
NSString *phoneLabel = @""; // ???
CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(phones, j);
//CFRelease(phones);
NSString *phoneNumber = (NSString *)phoneNumberRef;
CFRelease(phoneNumberRef);
NSLog(@" - %@ (%@)", phoneNumber, phoneLabel);
[phoneNumber release];
}
}
谢谢,这样做! – 2011-03-21 10:06:18
欢迎您,很高兴它帮助 – shannoga 2011-03-21 10:09:40
而不是使用(NSString *)转换为字符串使用(__bridge_transfer NSString *)。 – Dev2rights 2013-02-05 15:28:41