ios - unexpectedly found nil while unwrapping an Optional value?
PHPz
PHPz 2017-04-17 17:36:59
0
3
602

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)

PHPz
PHPz

学习是最好的投资!

répondre à tous(3)
巴扎黑

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é.

Peter_Zhu

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 ?

Peter_Zhu

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal