【问题标题】:Getting email address from the contact details从联系方式中获取电子邮件地址
【发布时间】:2016-08-23 18:32:28
【问题描述】:

我正在尝试使用 swift 从联系人详细信息中打开 MailComposeViewController。一切正常,当我单击联系人的电子邮件时,页面打开,但我想用我刚刚单击的电子邮件填充收件人电子邮件字段,但我不知道该怎么做。

这是我的代码:

 func contactPicker(picker: CNContactPickerViewController, didSelectContactProperty contactProperty: CNContactProperty) {

    if MFMailComposeViewController.canSendMail() {

        let mail = MFMailComposeViewController()

        mail.mailComposeDelegate = self

        //This doesn't work, only asks for a string. 
        mail.setToRecipients(["\(contactProperty.value)"])


        self.dismissViewControllerAnimated(true, completion: {() -> Void in
            self.presentViewController(mail, animated: true, completion: nil)
        })

    } else {
        print("send error")
    }
}

我只能将字符串添加到 mail.setToRecipients。当我使用contactProperty.value时,它给了我这个错误:

可选(example@email.com)不是有效的电子邮件地址。

【问题讨论】:

  • 对地址使用“as”...意思是在分配之前解开它
  • 我该怎么做?抱歉,刚接触这个。

标签: swift mfmailcomposeviewcontroller mfmailcomposer


【解决方案1】:

CNContactProperty.valueAnyObject? 类型,这意味着它是可选的。
所以你需要安全地打开它并将其转换为字符串。

尝试替换它

mail.setToRecipients(["\(contactProperty.value)"])

if let emailAddress = contactProperty.value as? String {
        mail.setToRecipients([emailAddress])
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 2016-08-12
    相关资源
    最近更新 更多