【发布时间】:2015-11-01 13:54:08
【问题描述】:
我正在尝试使用 Alamofire 请求延迟加载属性 (UIImage)。这就是我所在的位置:
public lazy var theImage: UIImage = MyCalass.loadImage { (imageTest) -> Void in
return imageTest
}
class public func loadImage(completion: (imageTest: UIImage) -> Void){
Alamofire.request(.GET, "http://pathtoimage/image.jpg").response { (request, response, data, error) in
var tempImage = UIImage(data: data!, scale:1)
completion(imageTest: tempImage!)
}
}
错误:'()' 不能转换为 'UIImage'
【问题讨论】:
-
loadImage(_:)没有返回值(即Void,又名());您正在尝试将UIImage类型的惰性属性分配给不返回图像的函数的返回值。 -
对于像请求图像这样的异步任务,惰性或计算属性不是合适的解决方案。
-
方法调用很简单,我只是在尝试延迟加载
-
为什么要让它变得懒惰?它不一定会出现,或者你会在什么条件下显示它?
-
嗨,凯尔,看看我的回答,我相信它会对你有所帮助 :-)
标签: ios swift asynchronous lazy-loading alamofire