实例将被立即释放,因为属性“ imageView”为“弱”

时间:2018-10-05 23:47:44

标签: ios swift

我正在尝试将我的应用程序更新为Xcode 10(iOS 12),编辑器向我显示了很多警告消息:

实例将被立即释放,因为属性“ imageView”为“弱”

所有这些警告(我有很多,真的,真的很多)都出现在UIImageView插座上。

@IBOutlet weak var imageView : UIImageView!

let logo = UIImage(named: "Cartoon.png")

imageView = UIImageView(image:logo)

警告出现在这种行中:

imageView = UIImageView(image:logo)

一些想法?

2 个答案:

答案 0 :(得分:0)

对不起,我找到了答案。

我现在才找到答案:

imageView.image = UIImage(named: "Cartoon.png")

忘记:

imageView = UIImageView(image:logo)

甚至:

imageView = UIImageView(image: UIImage(named: "Cartoon.png"))

只需上面的代码:

imageView.image = UIImage(named: "Cartoon.png")

答案 1 :(得分:0)

主要原因是imageView属性

@IBOutlet weak var imageView : UIImageView!

weak,所以当您设置

imageView = UIImageView(image:logo)

rhs不会被lhs保留,因为它很弱,因此如果要设置图像使用,则imageView将是nil

imageView.image = UIImage(named: "Cartoon.png")

https://medium.com/@gurdeep060289/color-image-new-literals-in-the-cocoa-town-7ef4f2710194

因为创建插座没有意义