MailComposeViewController Error: unexpectedly found nil
MailComposeViewController Error: unexpectedly found nil
我正在尝试将我发送的电子邮件的电子邮件地址和时间保存到 table 视图中。电子邮件发送正常,但每当我单击发送按钮时,我都会收到此错误(错误:在展开可选值时意外发现 nil)。我不确定我的代码中的错误在哪里。
发送按钮代码:
//SentEmails Array
var sentEmails = [emailObject]()
//Default email
var sentEmailTo = "email@email.com"
//Dismiss Buttons for Mail Composer
func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError?) {
//Check for errors
if let error = error {
print("Error: \(error)")
return
}
switch result {
case MFMailComposeResultCancelled:
print("Mail Cancelled")
case MFMailComposeResultSaved:
print("Mail Saved")
case MFMailComposeResultSent:
//Save information to tableview
let emailSent = emailObject(sentTo: sentEmailTo, timeSent: NSDate())
sentEmails.append(emailSent)
tableView.reloadData()
print("Mail Sent")
case MFMailComposeResultFailed:
print("Mail sent failure: \(error)")
default:
break
}
controller.dismissViewControllerAnimated(true, completion: nil)
}
我的手机号码:
//Cell Configuration
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath)
let row = indexPath.row
let dateFormat = NSDateFormatter()
dateFormat.dateStyle = .ShortStyle
dateFormat.timeStyle = .ShortStyle
cell.textLabel?.text = sentEmails[row].sentTo
cell.detailTextLabel?.text = dateFormat.stringFromDate(sentEmails[row].timeSent)
return cell
}
错误:
*不知道我能做到这一点哈哈,这是错误的详细信息:
发生崩溃时,您可以按 1
所在的行,
它将显示有关崩溃发生位置的更多信息(在 ViewController 文件中)。你能post截图吗?
抱歉,我无法 post 图片作为对问题的评论。一旦我们知道更多,将编辑答案。
你有这样的 tableView 在 Interface Builder 中连接吗?如果没有,您需要为 table 定义数据源、委托和出口("Gratitude Stream" 位来自我的示例,但您的将来自您自己的视图控制器)。
我正在尝试将我发送的电子邮件的电子邮件地址和时间保存到 table 视图中。电子邮件发送正常,但每当我单击发送按钮时,我都会收到此错误(错误:在展开可选值时意外发现 nil)。我不确定我的代码中的错误在哪里。
发送按钮代码:
//SentEmails Array
var sentEmails = [emailObject]()
//Default email
var sentEmailTo = "email@email.com"
//Dismiss Buttons for Mail Composer
func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError?) {
//Check for errors
if let error = error {
print("Error: \(error)")
return
}
switch result {
case MFMailComposeResultCancelled:
print("Mail Cancelled")
case MFMailComposeResultSaved:
print("Mail Saved")
case MFMailComposeResultSent:
//Save information to tableview
let emailSent = emailObject(sentTo: sentEmailTo, timeSent: NSDate())
sentEmails.append(emailSent)
tableView.reloadData()
print("Mail Sent")
case MFMailComposeResultFailed:
print("Mail sent failure: \(error)")
default:
break
}
controller.dismissViewControllerAnimated(true, completion: nil)
}
我的手机号码:
//Cell Configuration
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath)
let row = indexPath.row
let dateFormat = NSDateFormatter()
dateFormat.dateStyle = .ShortStyle
dateFormat.timeStyle = .ShortStyle
cell.textLabel?.text = sentEmails[row].sentTo
cell.detailTextLabel?.text = dateFormat.stringFromDate(sentEmails[row].timeSent)
return cell
}
错误:
*不知道我能做到这一点哈哈,这是错误的详细信息:
发生崩溃时,您可以按 1
所在的行,
它将显示有关崩溃发生位置的更多信息(在 ViewController 文件中)。你能post截图吗?
抱歉,我无法 post 图片作为对问题的评论。一旦我们知道更多,将编辑答案。
你有这样的 tableView 在 Interface Builder 中连接吗?如果没有,您需要为 table 定义数据源、委托和出口("Gratitude Stream" 位来自我的示例,但您的将来自您自己的视图控制器)。