【问题标题】:In Xcode 6.1. 'UIImage?' does not have a member named 'size' Error在 Xcode 6.1 中。 'UIImage?没有名为“大小”的成员错误
【发布时间】:2015-01-06 00:32:16
【问题描述】:

我得到了一张图片的Size 并使用了下面的代码。与Xcode 6.0.1 一起工作得非常好。更新到Xcode 6.1 后,我收到错误消息:

'UIImage?' does not have a member named 'size'

var image = UIImage(named: imageName)
let sizeOfImage = image.size

是我的代码或 Apple 的错误吗?请帮帮我。 TIA。

【问题讨论】:

    标签: swift uiimage xcode6


    【解决方案1】:

    该初始化程序现在是一个可失败的初始化程序,因此它返回一个可选的UIImage

    要快速修复您的错误,只需打开图像:

    let sizeOfImage = image?.size
    

    但我认为您会在代码中不止一次引用image 变量,在这种情况下,我建议使用可选绑定:

    if let image = image {
        let sizeOfImage = image.size
        /// ...
        /// Use the image
    }
    

    【讨论】:

    • 嗨,我的代码也有同样的问题。但是,您的解决方案不适用于我的解决方案。知道为什么吗?
    • 让 image = UIImage(named: imageNamed); let result = SKScrollingNode(color: UIColor.clearColor(), size: CGSizeMake(CGFloat(containerWidth), image?.size.height));
    • 我收到以下错误:可选类型 'CGFloat?' 的值未拆封;你的意思是用'!'还是“?”?
    【解决方案2】:

    除了@Antonio 的回答之外,您还可以使用 nil 合并运算符 (??) 来获取默认大小,以防图像初始化程序失败。方法如下:

    let size = image?.size ?? CGSizeZero
    

    【讨论】:

      【解决方案3】:

      一旦您确定可选项确实包含一个值,您就可以通过在可选项名称的末尾添加一个感叹号 (!) 来访问其基础值。在你的情况下:image.size!

      【讨论】:

        【解决方案4】:

        你可以这样使用:

            let image = UIImage(named: "photo1.png")
            let sizeOfImage = image?.size
        
            imageView.image = image
            imageView.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: sizeOfImage!)
        

        【讨论】:

          猜你喜欢
          • 2017-11-26
          • 2014-10-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多