局部变量声明迅速
我试图以允许用户在我的应用程序发送电子邮件,但我得到一个:它的声明之前局部变量声明迅速
使用局部变量“configureMailComposeViewController”的
这是代码。
func item(_ item: Int, selectedAtContactIndex index: Int) {
var mailComposeViewController = configuredMailComposeViewController()
if MFMailComposeViewController.canSendMail() {
self.presentViewController(mailComposeViewController, animated: true, completion: nil)
} else {
}
}
func configuredMailComposeViewController() -> MFMailComposeViewController{
let mailComposerVC = MFMailComposeViewController()
mailComposerVC.mailComposeDelegate = self
mailComposerVC.setToRecipients([EmailAddressArray[index]])
mailComposerVC.setSubject("I need your help")
return mailComposerVC
}
func configuredMailComposeViewController() -> MFMailComposeViewController
这里这个权利是你的函数具有返回类型MFMailComposeViewController
,你会得到你什么时候会调用这个方法。它会给你返回一些结果
现在您的上述方法func configuredMailComposeViewController() -> MFMailComposeViewControllercall
的结果需要保存在一个变量中,您不能让它在空中飞行。为了保存或获取此方法,您需要执行以下操作 - :
var mailComposeViewController = configuredMailComposeViewController()
所以这清楚你不必在你的回报功能后,调用此mailComposeViewController = configuredMailComposeViewController()
。
正是这个 - :
func configuredMailComposeViewController() -> MFMailComposeViewController{
let mailComposerVC = MFMailComposeViewController()
mailComposerVC.mailComposeDelegate = self
mailComposerVC.setToRecipients([EmailAddressArray[index]])
mailComposerVC.setSubject("I need your help")
return mailComposerVC
}
func item(_ item: Int, selectedAtContactIndex index: Int) {
if MFMailComposeViewController.canSendMail() {
var mailComposeViewController = configuredMailComposeViewController()
self.presentViewController(mailComposeViewController, animated: true, completion: nil)
} else {
}
}
你真的应该招行'VAR mailComposeViewController = configuredMailComposeViewController()'里面的'if'语句。如果您无法发送电子邮件,则创建邮件编辑器是没有意义的。 – rmaddy
切换的功能的顺序,把configuredMailComposeViewController
功能之上
func configuredMailComposeViewController() -> MFMailComposeViewController{
let mailComposerVC = MFMailComposeViewController()
mailComposerVC.mailComposeDelegate = self
mailComposerVC.setToRecipients([EmailAddressArray[index]])
mailComposerVC.setSubject("I need your help")
return mailComposerVC
}
func item(_ item: Int, selectedAtContactIndex index: Int) {
var mailComposeViewController = configuredMailComposeViewController()
if MFMailComposeViewController.canSendMail() {
self.presentViewController(mailComposeViewController, animated: true, completion: nil)
} else {
}
}
无关的,为什么你叫'configuredMailComposeViewController'之前你叫'如果MFMailComposeViewController.canSendMail()'? – rmaddy
@john,你认为这是什么意思? 'MFMailComposeViewController()' – aircraft