有没有办法从 iPhone 通讯录中找到某个人的特定类型的电子邮件地址?我知道如何获取一个人的所有电子邮件地址,只是不知道如何识别它是什么类型的电子邮件地址(“家庭”、“工作”等)......也不(这可能更可取) ),一种无需遍历所有地址即可直接访问该地址的方法。
谢谢。
有没有办法从 iPhone 通讯录中找到某个人的特定类型的电子邮件地址?我知道如何获取一个人的所有电子邮件地址,只是不知道如何识别它是什么类型的电子邮件地址(“家庭”、“工作”等)......也不(这可能更可取) ),一种无需遍历所有地址即可直接访问该地址的方法。
谢谢。
使用 ABMultiValueCopyLabelAtIndex 检查 kABWorkLabel 的标签。
例如,如果您有一个名为“person”的 ABRecordRef,则此代码将设置一个名为“emailAddress”的单个 NSString:
// 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);