如何将可选值从 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)
}
下面是我的代码
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)
}