ios - kABPersonEmailProperty 返回奇怪的东西

标签 ios cocoa-touch abaddressbook

我想像这样获取 ABRecordRef 的电子邮件地址:

ABRecordRef ref = CFArrayGetValueAtIndex( allPeople, i );
NSString *email = [(NSString*) ABRecordCopyValue( ref, kABPersonEmailProperty ) autorelease];
NSLog(@"%@", email);

它返回这个:

_$!<Home>!$_ (0x6840af0) - test@test.com (0x6840cc0)

电子邮件周围的这些东西是什么?我怎样才能摆脱它?谢谢。

最佳答案

kABPersonEmailProperty类型为 kABMultiStringPropertyType .没有单一的电子邮件地址属性,一个人可能有一个工作电子邮件地址,一个家庭电子邮件地址等。 您可以使用 ABMultiValueCopyArrayOfAllValues 获取所有电子邮件地址的数组。 :

ABMultiValueRef emailMultiValue = ABRecordCopyValue(ref, kABPersonEmailProperty);
NSArray *emailAddresses = [(NSArray *)ABMultiValueCopyArrayOfAllValues(emailMultiValue) autorelease];
CFRelease(emailMultiValue);

要获取电子邮件地址的标签,请使用 ABMultiValueCopyLabelAtIndex . “_$!<Home>!$ ”是一个特殊常量,定义为 kABHomeLabel , 还有 kABWorkLabel .

关于ios - kABPersonEmailProperty 返回奇怪的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6658622/

相关文章:

iphone - 如何更改 iPhone SDK 中分组 TableView 中节标题的文本颜色?

ios - 在 AppDelegate 中使用推送通知重定向 View

objective-c - 将 Twitter 帐户添加到 ABRecordRef(人员)的最简单方法

ios - 处理国际电话号码和不正确的通讯录格式

iOS Rich Push notifications with Xcode, Swift3 但无法获取图像

ios - imagepickercontroller 的 photoLibrary 中的视频

ios - 带有主页按钮的 sfsafariviewcontroller 覆盖不起作用

xcode - 如何将旧版构建系统与 Xcode 1 0's ` xcodebuild` 一起使用?

ios - 如何编辑 ABAddressBook 上的记录

ios - 获取日期组件中的当前月份日期