ios - 从地址簿中计算个人资料中的电子邮件地址

标签 ios swift casting

在我的应用程序中,我可以访问设备地址簿,以选择联系人并获取他的电子邮件。

由于联系人没有任何电子邮件,我必须计算电子邮件地址的数量。如果不这样做,我可能会得到 nil 值,并且应用程序会崩溃。

我尝试了很多方法,但总是遇到问题。

当我编写这段代码时:

func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController!, didSelectPerson person: ABRecord!) {
    var emails: ABMultiValueRef = ABRecordCopyValue(person, kABPersonEmailProperty) as! ABMultiValueRef
    var countEmails = ABMultiValueGetCount(emails)

我收到此错误:

Could not cast value of type 'Swift.Unmanaged<Swift.AnyObject>' (0x7f9f12db3c88) to 'Swift.AnyObject'

感谢您的回答

最佳答案

您的目标是 iOS 9 吗?其中一些 api 已被弃用。

  • kABPersonEmailProperty 应为 CNContact.emailAddresses
  • ABMultiValueRef 应为 [CNLabeledValue]

关于ios - 从地址簿中计算个人资料中的电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31269836/

相关文章:

swift - 如何避免在返回对象的辅助函数中进行不必要的初始化?

ios - 如何在 Swift 中从二维码保存 vCard

c - 如果存在明显的溢出可能性,我是否应该手动类型转换为更高的类型?

c# - 如何将 Dictionary<string,MyClass> 转换为 Dictionary<string,object>

ios - 重置设备上的钥匙串(keychain)

javascript - 有没有办法使用 jquery 和触发操作来检测 ios < > 表单导航按钮?

php - REST API 安全设计

ios - 不同目标的不同 AppDelegate 和 Storyboard 文件

ios - 尝试在 iPhone 上测试应用程序时出错

swift - 如何在 swift 中使用带有开关的 AS 来获取类类型