我试图从ALAssetsGroup#posterImage
方法创建一个UIImage
,在Objective-C中,我可以简单地调用[UIImage imageWithCGImage:group.posterImage]
,但在Swift中,UIImage(CGImage: group.posterImage)
给我一个编译器错误:
Could not find an overload for 'init' that accepts the supplied arguments
我哪里做错了?
4条答案
按热度按时间7cjasjjr1#
如果你看一下Xcode6中的文档,你会发现
posterImage()
返回一个Unmanaged<CGImage>!
(在Swift中,在ObjC中,它返回一个CGImageRef
)。当您从未注解的API接收到非托管对象时,应该在使用它之前立即将其转换为内存托管对象。
因此,您的解决方案是:
7ajki6be2#
2023语法更新:
典型示例是从CALayer获取图像:
您确定group.posterImage不是可选的吗?
你试过吗
gg58donl3#
下面是一个适用于Xcode 8.3的示例:
oxf4rvwz4#
对CGIImage使用init: