Objective c 如何从swift向目标c类传递可选值
下面是我的代码Objective c 如何从swift向目标c类传递可选值,objective-c,swift,optional,Objective C,Swift,Optional,下面是我的代码 var img = self.appDelegate.loadImageFromCache(imageURL)! if (img != nil) { cell.imageArray.append(img!) } 即使img对象可用,我也会得到错误信息 “致命错误:在展开可选值时意外发现nil” My cell类是一个objective c类,imageArray是一个属性。您做错了。首先强制展开可选值(第1行),然后检查它是否为零。如果它是零,那么它在第1行爆炸。如果不
var img = self.appDelegate.loadImageFromCache(imageURL)!
if (img != nil) {
cell.imageArray.append(img!)
}
即使img对象可用,我也会得到错误信息
“致命错误:在展开可选值时意外发现nil”
My cell类是一个objective c类,imageArray是一个属性。您做错了。首先强制展开可选值(第1行),然后检查它是否为零。如果它是零,那么它在第1行爆炸。如果不是,则不需要在第2行中进行检查。以下是正确的书写方法:
if let image = self.appDelegate.loadImageFromCache(imageURL) {
cell.imageArray.append(image)
}
if let语句尝试展开表达式的结果,如果可以,则将结果指定给image。然后执行内部的代码。如果不能,则省略If let语句
编辑:您必须检查所有来自objective-c的内容。所以重写它
if let image = self.appDelegate.loadImageFromCache(imageURL) {
cell.imageArray?.append(image)
}
可能cell或cell.imageArray为零。感谢您提供第二个解决方案。我已经尝试了第一个解决方案,但也失败了,这就是你在这里发布的。再次感谢你。即使它现在起作用了,也不意味着一切都好。可能您现在的代码中有一个bug。imageArray为nil,其中未存储任何内容。