2012-04-12 43 views
0

我是iphone開發新手。我正在開發應用程序,我需要從通訊錄中獲取聯繫人詳細信息,如名字,電子郵件ID,電話號碼編程。並且這些值將被存儲在數組中,iam表現良好,但問題是即使爲空的聯繫人也被添加,意味着如果某人只有名字並且沒有電子郵件ID,那麼如何檢查不添加空值。這是我正在使用的代碼。如何以編程方式從通訊錄獲取聯繫人信息

ABRecordRef ref; 
ABAddressBookRef m_addressbook = ABAddressBookCreate(); 

CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(m_addressbook); 
CFIndex nPeople = ABAddressBookGetPersonCount(m_addressbook); 
NSLog(@" n people count values %ld",nPeople); 

for (int i=0; i<nPeople; i++) 
{ 
    AFContacts *contactOfAPerson = [[AFContacts alloc] init]; 
    ref = CFArrayGetValueAtIndex(allPeople,i); 
    [contactOfAPerson setEmail:(NSString *)ABRecordCopyValue(ref, kABPersonEmailProperty)]; 
    [contactOfAPerson setFirstName:(NSString *)ABRecordCopyValue(ref, kABPersonFirstNameProperty)]; 
    //[contactOfAPerson setPhoneNumber:(NSString *)ABRecordCopyValue(ref, kABPersonPhoneMobileLabel)]; 
    [contactList addObject:contactOfAPerson]; 
    [contactOfAPerson release]; 
} 
CFRelease(ref); 
} 

回答

0

如果我理解正確,您不想將沒有電子郵件地址的聯繫人添加到陣列。您可以嘗試使用,如果條件聯繫人添加到陣列

ABMultiValueRef emailAddresses = ABRecordCopyValue(ref, kABPersonEmailProperty); 

if (ABMultiValueGetCount(emailAddresses) > 0) 
{ 
    [contactOfAPerson setEmail:(NSString *)ABRecordCopyValue(ref, kABPersonEmailProperty)]; 
    [contactOfAPerson setFirstName:(NSString *)ABRecordCopyValue(ref, kABPersonFirstNameProperty)]; 
    [contactList addObject:contactOfAPerson]; 
} 
相關問題