2016-08-23 6 views
0

すぐに連絡先の詳細から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を使用する場合、それは私に、このエラーを与える:

オプション([email protected])は、有効なメールアドレスではありません。

+0

使用してを交換してみてくださいアドレスに...私はそれを行うにはどうすればよい –

+0

を割り当てる前に、それをアンラップ意味ですか?申し訳ありません、ちょうどこれに新しいです。 – art3mis

答えて

1

CNContactProperty.valueは、それがオプションだ意味タイプAnyObject?です。
したがって、安全に巻き戻して文字列としてキャストする必要があります。

この

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

'などの'

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

これは完全に働いた、ありがとう:) – art3mis

関連する問題