私はすべてのユーザーの連絡先にアクセスし、アプリを介してメールを送信しています。メールアドレスがあれば、すべての連絡先に問題なくアクセスできます。彼らが電子メールアドレスを持っていない場合、エラーが表示されます.アドレスをアドレスのリストに追加する前に、電子メールアドレスを持っているかどうかを確認しようとしています. 私はこのコードを使用しています。if ((ABMultiValueCopyValueAtIndex(email, 0) != NULL)) の if ステートメントの行でエラーが発生します。
メールアドレスを持つ連絡先だけにアクセスするにはどうすればよいですか?
NSMutableArray* contactsArray = [NSMutableArray new];
ABAddressBookRef m_addressbook = ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(m_addressbook);
CFIndex nPeople = ABAddressBookGetPersonCount(m_addressbook);
for (int i=0;i < nPeople;i++)
{
NSMutableDictionary* tempContactDic = [NSMutableDictionary new];
ABRecordRef ref = CFArrayGetValueAtIndex(allPeople,i);
CFStringRef firstName, lastName;
firstName = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
lastName = ABRecordCopyValue(ref, kABPersonLastNameProperty);
NSString *name = [NSString stringWithFormat:@"%@ %@", firstName, lastName];
[tempContactDic setValue:name forKey:@"name"];
//fetch email id
NSString *strEmail;
ABMultiValueRef email = ABRecordCopyValue(ref, kABPersonEmailProperty);
if ((ABMultiValueCopyValueAtIndex(email, 0) != NULL))
{
CFStringRef tempEmailref = ABMultiValueCopyValueAtIndex(email, 0);
strEmail = (__bridge NSString *)tempEmailref;
[contactsArray addObject:strEmail];
}
}