如何获得的iPhone地址簿联系人的电子邮件作为NSStrings?
-
10-07-2019 - |
题
我知道,可以有多种价值对于一封电子邮件,但我不知道该如何浏览通过他们。
我可以得到一个人正确。
ABRecordRef person = // getting a person;
NSString* emails = (NSString *)ABRecordCopyValue(person, kABPersonEmailProperty);
...下一步是什么?如果我尝试打印的 emails
变我获得:
Emails: <NSCFType: 0x4018d40>
解决方案
这是因为电子邮件不应该是一个串,但阵列。人可以有许多电子邮件!
ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty);
CFStringRef email = ABMultiValueCopyValueAtIndex(emails, <INDEX>);
NSLog( (NSString *) email);
在这里, 是一些文件上的事情可以做MultiValueLists
其他提示
这种类型的此项目是一个 ABMultiValue
(具体地说,这个字段的类型是一个 kABMultiStringProperty
).看看 "使用多值列出了" 对于如何读取这些。看看 地址簿的目标-C常量参考 为什么每个酒店的回报。
此外,请记住,AB功能受到的 创建规则.你是负责释放对象你从一个功能用"复制"。
在的iOS 9 ABFramework已弃用的新联系人框架强>:
我告诉你一个例子来记录一个CNContact的每一个电子邮件地址:
CNContact * yourContact = //...
for (CNLabeledValue* emailLabeledValue in yourContact.emailAddresses){
NSLog(@"%@",[emailLabeledValue value]);
}
不隶属于 StackOverflow