2016-08-24 8 views
2

Я пытаюсь сохранить электронную почту и время отправленного мной электронного сообщения в виде таблицы. Письма отправляются штрафом, но я получаю эту ошибку (ошибка: неожиданно обнаружена нуль при развертывании необязательного значения) всякий раз, когда я нажимаю кнопку отправки. Я не уверен, где ошибка в моем коде.MailComposeViewController Ошибка: неожиданно найдено nil

Код для кнопки отправки:

//SentEmails Array 
var sentEmails = [emailObject]() 

//Default email 
var sentEmailTo = "[email protected]" 

//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 
} 

Ошибка:

enter image description here

* Не знаю, что я мог бы сделать это lol, вот деталь ошибки:

enter image description here

+0

В какой строке отладчик указывает, когда он сработает? – pbush25

+0

@ pbush25 он не указывает ни на что, а на страницу, плохо публикует его через секунду. – art3mis

+0

Не могли бы вы опубликовать скриншот, где он указывает на ваш ViewController? Когда это снова произойдет, откройте класс ViewController и сделайте снимок экрана – hybridcattt

ответ

0

У вас есть tableView, подключенный к построителю интерфейса, как это? Вы должны определить свой источник данных, делегировать и выходы для таблицы, если нет (биты «Gratitude Stream» из моего примера, но ваш будет с вашего собственного контроллера представления). enter image description here

+0

У меня нет ссылки на выход, но когда я пытаюсь подключиться к tableView, но вид напрямую ... я открываю приложение, а экран черный – art3mis

+0

Просто указал мне на в правильном направлении ... спасибо. – art3mis

+0

Отлично - дайте мне знать, в чем проблема! –

1

Когда авария происходит, вы можете нажать на строку с 1, enter image description here

и он будет отображать больше информации о том, где произошло крушение (в ViewController файле). Можете ли вы опубликовать снимок экрана?

Извините, я не могу опубликовать изображение в качестве комментария к вопросу. Будет отредактировать ответ, если мы узнаем больше.

+0

Там я отправил изображение. – art3mis

+0

Скорее всего, tableView ничто в этой точке. Вы можете это проверить? – hybridcattt

+0

Как я могу это проверить? Он пуст, я ничего не добавил к нему. – art3mis

Смежные вопросы