下面是我的代码
var img = self.appDelegate.loadImageFromCache(imageURL)!
if (img != nil) {
cell.imageArray.append(img!)
}
即使 img 对象可用,我也会收到错误
"fatal error: unexpectedly found nil while unwrapping an Optional value"
我的单元类是一个 objective-c 类,imageArray 是一个属性。
最佳答案
你做错了。首先,强制解开可选值(第 1 行),然后检查它是否为 nil。如果它是 nil,那么它会在第 1 行中爆炸。如果不是,那么您不需要在第 2 行中检查它。以下是正确的编写方法:
if let image = self.appDelegate.loadImageFromCache(imageURL) {
cell.imageArray.append(image)
}
if let 语句尝试解开表达式的结果,如果可以的话,它将结果分配给 image。然后执行if let里面的代码。如果不能,则省略 if let 语句。
编辑:你必须检查所有来自 Objective-C 的内容。所以重写一下
if let image = self.appDelegate.loadImageFromCache(imageURL) {
cell.imageArray?.append(image)
}
关于objective-c - 如何从 swift 将可选值传递给 Objective C 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28380119/