无法将类型“[PHAsset]”的值分配给类型“UIImageView!”
Posted
技术标签:
【中文标题】无法将类型“[PHAsset]”的值分配给类型“UIImageView!”【英文标题】:Cannot assign a value of type '[PHAsset]' to type '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)
但是我得到了如下图所示的错误
【问题讨论】:
【参考方案1】:变量 selectedImage 的类型是 PHAsset
变量 self.backgroundImageView 和 self.SelectImageView 的类型是 UIImageView
这两种类型不匹配,所以 Swift 不允许你进行赋值。
要进行分配,您必须将 PHAsset 转换为 UIImage,然后将此 UIImage 分配给 UIImageView
【讨论】:
@MartinQ 我已经在最后一部分回答了这个问题。 *** 上有多个关于如何执行这些约定的答案 好的,我在这方面已经有一段时间了,我有点卡住了。我是否在按钮功能之外转换它?还是我在按钮功能中转换它。当我在按钮函数之外进行转换,然后在按钮中调用函数时,它说:无法将“UIImage”类型的值转换为预期的参数类型“PHAsset”【参考方案2】:[PHAsset]
是 PHAsset
对象的数组。要从数组中获取图像,请从您想要的特定索引中获取 PHAsset
,然后使用 requestImageForAsset:targetSize:contentMode:options:resultHandler:
从资产中获取图像。
【讨论】:
使用我上面的代码,你能给我一个大致的布局吗? ...我感觉有点失落。谢谢 JAL,有没有可以用代码表达的?我理解你的指示,但我坚持这一点,我没有任何帮助。如果您不绑定,我将非常感谢您的帮助。谢谢以上是关于无法将类型“[PHAsset]”的值分配给类型“UIImageView!”的主要内容,如果未能解决你的问题,请参考以下文章
无法将类型 [NSObject] 的值分配给类型 NSObject
无法将 CKAsset 类型的值分配给 UIImage 类型