0

我是 iphone 开发的新手。我正在开发应用程序,如果我需要以编程方式从通讯录中获取联系方式,例如名字、电子邮件 ID、电话号码。这些值要存储在数组中,我做得很好,但问题是即使添加了空联系人也意味着如果有人只有姓名而没有电子邮件 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);
}
4

2 回答 2

0

如果我理解正确,您不想将没有电子邮件地址的联系人添加到数组中。您可以尝试使用 if 条件将联系人添加到数组

ABMultiValueRef emailAddresses = ABRecordCopyValue(ref, kABPersonEmailProperty);

if (ABMultiValueGetCount(emailAddresses) > 0)
{
   [contactOfAPerson setEmail:(NSString *)ABRecordCopyValue(ref, kABPersonEmailProperty)];
   [contactOfAPerson setFirstName:(NSString *)ABRecordCopyValue(ref, kABPersonFirstNameProperty)];
   [contactList addObject:contactOfAPerson];
}
于 2012-04-12T15:36:12.913 回答
0

结帐这个最好导入联系人及其所有详细信息

http://iphoneappcode.blogspot.in/2011/05/abpeoplepickernavigationcontroller.html

于 2014-05-08T07:31:45.957 回答