【问题标题】:Cannot assign a value of type '[PHAsset]' to type 'UIImageView!'无法将类型“[PHAsset]”的值分配给类型“UIImageView!”
【发布时间】:2016-04-26 20:52:20
【问题描述】:

无法将“[PHAsset]”的值分配给键入“UIImageView!”

我在这里遇到了问题:

更新问题

    // CONVERT PHASSET TO UIIMAGE
func getAsset(asset: PHAsset) -> UIImage {
    let manager = PHImageManager.defaultManager()
    let option = PHImageRequestOptions()
    var image = UIImage()
    option.synchronous = true
    manager.requestImageForAsset(asset, targetSize: CGSize(width: 100.0, height: 100.0), contentMode: .AspectFit, options: option, resultHandler: {(result, info)->Void in
        image = result!
    })
    return image
}




func doneButtonDidPress(images: [UIImage]) {



    self.imagePickerController.dismissViewControllerAnimated(true, completion: nil)
    var selectedImg = imagePickerController.stack.assets

    getAsset(selectedImg)
    self.SelectImageView.image = UIImage(named: chosenImg)



    }

但是我得到了如下图所示的错误

【问题讨论】:

    标签: ios swift uiimageview uiimage phasset


    【解决方案1】:

    变量 selectedImage 的类型是 PHAsset

    变量 self.backgroundImageViewself.SelectImageView 的类型是 UIImageView

    这两种类型不匹配,所以 Swift 不允许你进行赋值。

    要进行分配,您必须将 PHAsset 转换为 UIImage,然后将此 UIImage 分配给 UIImageView

    【讨论】:

    • @MartinQ 我已经在最后一部分回答了这个问题。 StackOverflow 上有多个关于如何执行这些约定的答案
    • 好的,我在这方面已经有一段时间了,我有点卡住了。我是否在按钮功能之外转换它?还是我在按钮功能中转换它。当我在按钮函数之外进行转换,然后在按钮中调用函数时,它说:无法将“UIImage”类型的值转换为预期的参数类型“PHAsset”
    【解决方案2】:

    [PHAsset]PHAsset 对象的数组。要从数组中获取图像,请从您想要的特定索引中获取 PHAsset,然后使用 requestImageForAsset:targetSize:contentMode:options:resultHandler: 从资产中获取图像。

    【讨论】:

    • 使用我上面的代码,你能给我一个大致的布局吗? ...我感觉有点失落。谢谢
    • JAL,有没有可以用代码表达的?我理解你的指示,但我坚持这一点,我没有任何帮助。如果您不绑定,我将非常感谢您的帮助。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 2019-12-03
    • 2017-08-07
    • 2021-03-08
    • 2016-12-24
    • 1970-01-01
    相关资源
    最近更新 更多