Существует ли способ найти конкретный вид адреса электронной почты для человека от iPhone Address Book? Я знаю, как получить все адреса электронной почты для человека, просто не, как определить, какой адрес электронной почты это ("домой", "работа", и т.д.)..., ни (и это могло бы быть предпочтительно), способ непосредственно получить доступ к тому адресу, не имея необходимость выполнять итерации через них всех.
Спасибо.
Проверка на этикетку Kabworklabel с использованием ABMultiValuecopyLabelatindex.
Например, если у вас есть Abrecordref по имени «Человек», этот код установит один NSString с именем «EmailAddress»:
// Email address (if only one, use it; otherwise, use the first work email address)
CFStringRef value, label;
ABMutableMultiValueRef multi = ABRecordCopyValue(person, kABPersonEmailProperty);
CFIndex count = ABMultiValueGetCount(multi);
if (count == 1) {
value = ABMultiValueCopyValueAtIndex(multi, 0);
emailAddress = (NSString*)value;
[emailAddress retain];
CFRelease(value);
} else {
for (CFIndex i = 0; i < count; i++) {
label = ABMultiValueCopyLabelAtIndex(multi, i);
value = ABMultiValueCopyValueAtIndex(multi, i);
// check for Work e-mail label
if (label && CFStringCompare(label, kABWorkLabel, 0) == 0) {
emailAddress = (NSString*)value;
[emailAddress retain];
break;
}
CFRelease(label);
CFRelease(value);
}
}
CFRelease(multi);