ios - 在核心数据中展开可选值时发现 nil
问题描述
几天来我一直在尝试解决这个问题,看来我只是在兜圈子。
我通过点击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)
}
}
解决方案
你需要改变
var myCart: Cart!
到
var myCart: Cart?
? 用于使其成为可选。并在 viewDidLoad 中使用
if (myCart != nil){
showMeTheGoodiesTwo(entry: myCart)
} else {
//do something.
}
代替
showMeTheGoodiesTwo(entry: myCart)
推荐阅读
- postgresql - 在 PostgreSQL 中恢复 postgres 用户
- c++ - 在不受支持的架构上未使用的 asm() 的行为
- javascript - html 中的函数是否在未导航时执行
- telegram - 使用 Telethon 转发大量消息
- html - 在图像和中心周围添加 div 容器
- docker - CloudFoundry:用于在 Gunicorn (Docker) 之上提供静态内容的 nginx
- nodemailer - Nodemailer 缺少“PLAIN”的凭据
- javascript - Vue/Buefy - 隐藏路由器链接点击/SPA 上的下拉菜单
- powerpoint - 通过注册表在 powerpoint 中设置默认字体、形状等,而不是主题
- ios - 在 Swift 中使用 RLMResults 的正确方法是什么?