几天来我一直在努力解决这个问题,看来我只是转圈而已。
我通过点击tableView
单元格,然后在另一个tableView
上显示项目,将数据添加到核心数据中。
那很好,问题是这样的:
当我单击其他表视图行时,为了能够看到包含所有其他值存储在核心数据中的项目,我得到了
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value on the showMeTheGoodiesTwo(entry: myCart) line
...在viewDidLoad
内部。但是我不知道为什么会这样,因为实体不是空的。
这是我要在其中显示项目详细信息的视图控制器的代码。
希望有人可以帮我
干杯!
import UIKit
class productQuantityViewController: UIViewController {
var myCart: Cart!
@IBOutlet weak var productImage: UIImageView!
@IBOutlet weak var productNameLabel: UILabel!
@IBOutlet weak var productDescriptionLabel: UILabel!
@IBOutlet weak var productAmountLabel: UITextField!
@IBOutlet weak var minusButton: UIButton!
@IBOutlet weak var plusButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
productImage.layer.cornerRadius = 10
minusButton.layer.cornerRadius = minusButton.frame.size.width/2
plusButton.layer.cornerRadius = plusButton.frame.size.width/2
showMeTheGoodiesTwo(entry: myCart)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func showMeTheGoodiesTwo(entry: Cart) {
let name = entry.product
let quantity = entry.inventory
let description = entry.productDescription
let image = entry.productImage as Data?
let xNSNumber = quantity as NSNumber
productNameLabel!.text = name
productDescriptionLabel!.text = description
productAmountLabel!.text = xNSNumber.stringValue
productImage!.image = UIImage(data:image!)
print(productNameLabel.text as Any)
}
}
答案 0 :(得分:0)
您需要更改
var myCart: Cart!
收件人
var myCart: Cart?
?用于使其可选。 并在viewDidLoad中使用
if (myCart != nil){
showMeTheGoodiesTwo(entry: myCart)
} else {
//do something.
}
代替
showMeTheGoodiesTwo(entry: myCart)