在Cocoa中获取用户默认的电子邮件地址

12

如何获取用户的默认电子邮件地址?我需要为我的崩溃报告对话框获取它,这样用户就不必手动填写。

2个回答

17

没关系,我明白了。首先,我只需要将AddressBook.framework添加到我的链接框架中。然后,这是所需的代码:

#import <AddressBook/AddressBook.h>

NSString *theEmailAddressWeWantToObtain = @"";
ABPerson *aPerson = [[ABAddressBook sharedAddressBook] me];
ABMultiValue *emails = [aPerson valueForProperty:kABEmailProperty];
if([emails count] > 0)
  theEmailAddressWeWantToObtain = [emails valueAtIndex:0];

1
您可能想使用组合框,并将其弹出菜单填充为用户的所有电子邮件地址。 - Peter Hosey
1
对于iOS 6.1,Xcode不喜欢ABPerson *aPerson = [[ABAddressBook sharedAddressBook] me];。自2011年以来,该协议必须发生了巨大的变化。 - JohnK
7
“me” 只是在 OS X 上的一个属性,不在 iOS 上。 - JohnQ
这是否意味着在iOS上无法获取用户的电子邮件? - Ravindranath Akila
糟糕,为了能够自动完成用户的电子邮件地址,我们应该请求访问地址簿... - imike

1

来自“iOS通讯录编程指南”:

将通讯录UI和通讯录框架链接到您的项目中。

重要提示 如果您不同时链接这两个框架,项目将无法构建(出现链接器错误)。

仅链接框架而不链接UI将防止示例代码编译。


上面的海报建议,在使用地址簿框架的任何项目中,您还应该包括地址簿UI。 - binary_falcon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接