2012-04-12 25 views
0

iphoneの開発は初めてです。私はアプリを開発しています。私はアドレス帳からファーストネーム、電子メール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]; 
} 
関連する問題