问题是,我总是在调用phones
变量的任何方法上运行时崩溃。 在此版本中,我在1
(ABMultiValueCopyValueAtIndex
)处得到一个错误。 如果我会对此行发表评论,代码会在2
(ABMultiValueGetCount
)上崩溃。 它看起来像属性是空的。如果我NSLog
phones
变量。我得到(null)
。 我测试iPhone模拟器上的代码,我有一些虚拟联系人有一些电话号码。 另外firstName
和lastName
工作就像一个魅力。如何处理iPhone的地址簿上的多个属性?
for(id person in people){
NSString *firstName = (NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
NSString *lastName = (NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSString *phone = (NSString*)ABMultiValueCopyValueAtIndex(phones, 0); /*1*/
/*2/ id ph, phLb;
for (CFIndex i = 0; i < ABMultiValueGetCount(phones); i++) {
phLb = ABMultiValueCopyLabelAtIndex(phones, i);
ph = ABMultiValueCopyValueAtIndex(phones, i);
NSLog(@"%@,%@", phLb, ph);
CFRelease(phLb);
CFRelease(ph);
}
*/
NSLog(@"%@", firstName);
NSLog(@"%@", lastName);
NSLog(@"%@", phones);
NSLog(@"%@", phone);
[firstName release];
[lastName release];
[phone release];
[phones release];
}
那么你的问题如何处理null? – slf 2010-07-06 14:10:16
我的问题是,如何从地址簿中获取数字。数字在那里,但我不知何故得到空。 – Alistra 2010-07-06 21:30:49