如何将可选值从 swift 传递给 objective c class

How to pass an optional value to objective c class from swift

下面是我的代码

var img = self.appDelegate.loadImageFromCache(imageURL)!
if (img != nil) {
    cell.imageArray.append(img!)
}

即使 img 对象可用,我也会收到错误

"fatal error: unexpectedly found nil while unwrapping an Optional value"

我的单元格 class 是 objective c class 并且 imageArray 是 属性.

你做错了。首先,你强制解包可选值(第 1 行),然后检查它是否为 nil。如果它是 nil 那么它会在第 1 行爆炸。如果不是那么你不需要在第 2 行检查它。这是正确的写法:

if let image = self.appDelegate.loadImageFromCache(imageURL) {
    cell.imageArray.append(image)
}

if let 语句尝试解包表达式的结果,如果可以,则将结果分配给图像。然后执行if let里面的代码。如果不能,则省略 if let 语句。

编辑:您必须检查所有内容都来自 objective-c。所以重写它

if let image = self.appDelegate.loadImageFromCache(imageURL) {
        cell.imageArray?.append(image)
    }