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)
L'objet
restaurant
n'est pas initialisé et il n'a aucune valeur lorsquetableView:cellForRowAtIndexPath
utilise l'objetrestaurant
plus tard. Un objetnull
` signalera une erreur une fois déballé.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 ?
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