首页 > 解决方案 > 为什么用图像初始化 UIImageView 对象返回 nil?

问题描述

@IBOutlet weak var checkMark: UIImageView!
override func viewDidLoad() {
    checkMark = UIImageView(image: UIImage?)
}

我已经初始化了一个对象并使用 UIImage 设置它。我认为这会初始化一个带有图片的对象,因此它应该显示在屏幕上,但它在checkMark.isHidden = true.

所以,我使用这种方法,只需将资产中的图像设置为checkMark.image. 它有效,但我不知道这两者之间有什么区别。

checkMark.image = #imageLiteral(resourceName: "answerCheckMark.png")

标签: iosswiftuiimageviewuiimage

解决方案


这似乎是一个出口,所以不要这样做

checkMark = UIImageView(image:myImage)

因为它将更改对weak var未保留(UIImageView(image:myImage))rhs的引用,这将使其为零,您可以阅读该行中显示的警告xcode,因此只需更改图像属性


推荐阅读