【问题标题】:Value of optional type 'UIImage?' not unwrapped; did you mean to use '!' or '?'? Insert '!' [duplicate]可选类型“UIImage?”的值未拆封;你的意思是用'!'要么 '?'?插入 '!' [复制]
【发布时间】:2018-10-09 01:25:10
【问题描述】:

当我为视图控制器设置背景图像时,我遇到了一些这样的错误......

Error:    Value of optional type 'UIImage?' not unwrapped; did you mean to use '!' or '?'? Insert '!'

我的代码是...

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    self.view.backgroundColor = UIColor(patternImage: UIImage(named: "image.png"))

}

【问题讨论】:

    标签: ios swift cocoa-touch uiimageview uiimage


    【解决方案1】:

    修复:

    let image = UIImage(named: "image.png")
    if image != nil {
        self.view.backgroundColor = UIColor(patternImage:image)
    }
    

    因为UIImage(named: "image.png"),这将返回可选的图像对象。即,如果图像不可用,它将返回 nil。

    From Apple docs

    返回值

    指定文件的图像对象,如果方法可以,则为 nil 找不到指定的图片。

    【讨论】:

    • 是的,它正在工作...非常感谢您
    • 不客气。如果您的问题得到解决,请将答案标记为已接受。
    • 在这种情况下,! 可以安全使用,因为您应该确保图片存在于您的资产中。尽管UIImage(named: "image"),它应该在没有扩展的情况下使用。
    • 是的。 @Sulthan 你是对的。如果屏幕打开最少或测试人员错过了该页面,此代码将在 App Store 上崩溃。如果你写的话,每个人都可以识别指定imageView上的空白。
    【解决方案2】:

    self.view.backgroundColor = UIColor(patternImage: UIImage(named: "image.png")) 替换为self.view.backgroundColor = UIColor(patternImage: UIImage(named: "image.png")!)

    【讨论】:

    • 收到此错误线程 1:致命错误:在展开可选值时意外发现 nil
    • @iOS,不可能,我已经测试过了,它工作正常,然后我发布答案。
    • 是的,你是对的......它最初崩溃了,因为该名称的图像不可用(image.png)。现在问题解决了,非常感谢...
    猜你喜欢
    • 2014-09-12
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多