recherche

Maison  >  Questions et réponses  >  le corps du texte

ios - unexpectedly found nil while unwrapping an Optional value?

import UIKit

class DetailTableViewController: UITableViewController {

var restaurant: Restaurant!

@IBOutlet weak var imageView: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()
    imageView.image = UIImage(named: restaurant.image)

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 4
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    
    let cell = tableView.dequeueReusableCellWithIdentifier("DetailCell", forIndexPath: indexPath) as! DetailTableViewCell
    
    switch indexPath.row{
    case 0:
        cell.fieldLabel.text = "Restaurant Name"
        cell.valueLabel.text = restaurant.name
    case 1:
        cell.fieldLabel.text = "Restaurant Type"
        cell.valueLabel.text = restaurant.type
    case 2:
        cell.fieldLabel.text = "Restaurant Location"
        cell.fieldLabel.text = restaurant.location
    case 3:
        cell.fieldLabel.text = "Visted?"
        cell.fieldLabel.text = restaurant.isVisted ? "Yes":"No"
    default:
        cell.fieldLabel.text = ""
        cell.valueLabel.text = "" 
    }
    return cell
}

}

错误信息: fatal error: unexpectedly found nil while unwrapping an Optional value
(lldb)

PHPzPHPz2887 Il y a quelques jours609

répondre à tous(3)je répondrai

  • 巴扎黑

    巴扎黑2017-04-17 17:38:59

    L'objet

    restaurant n'est pas initialisé et il n'a aucune valeur lorsque tableView:cellForRowAtIndexPath utilise l'objet restaurant plus tard. Un objet null` signalera une erreur une fois déballé.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:38:59

    Je n'ai jamais appris Swift, mais sur la base de l'expérience d'oc et des messages d'erreur, je suppose que vous n'avez écrit que pour récupérer la cellule du pool de réutilisation s'il n'y a pas de cellule dans le pool de réutilisation et que vous ne l'avez pas fait. créez-le, je ne sais pas, n'est-ce pas ?

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:38:59

    Erreur de traduction : lorsque la valeur facultative est décompressée, elle s'avère être une valeur nulle, ce qui équivaut dans une certaine mesure à un problème de pointeur nul
    Vous pouvez trouver quelles valeurs ​​​​n'ont pas été initialisées

    répondre
    0
  • Annulerrépondre