以下是我的代码
var img = self.appDelegate.loadImageFromCache(imageURL)!
if (img != nil) {
cell.imageArray.append(img!)
}
即使img对象可用,我也会收到错误
“致命错误:在解开可选值时意外发现nil”
我的单元格类是一个客观的c类,imageArray是一个属性。
答案 0 :(得分:1)
你做错了。首先,您强制解包可选值(第1行),然后检查它是否为零。如果它是零,那么它会在第1行爆炸。如果它不是,那么你不需要在第2行检查它。这是写这个的正确方法:
if let image = self.appDelegate.loadImageFromCache(imageURL) {
cell.imageArray.append(image)
}
if let语句尝试解包表达式的结果,如果可以,则将结果赋给image。如果let,则执行里面的代码。如果它不能省略if let statment。
编辑:你必须检查一切来自objective-c。所以改写它
if let image = self.appDelegate.loadImageFromCache(imageURL) {
cell.imageArray?.append(image)
}