从Swift中下载的NSData创建NSImage

时间:2014-10-06 00:26:27

标签: macos swift nsdata nsimage

所以我使用AlamoFire库下载图片网址,该图片网址返回 NSData 对象' avatarData'。但我无法弄清楚如何将此信息保存到NSImage 对象中,以便稍后在视图中使用。

这是转换为NSImage 的最佳尝试:

private func GetAvatar(avatarHash: String) {
    let avatar = "https://trello-avatars.s3.amazonaws.com/\(avatarHash)/30.png"
    Alamofire.request(.GET, avatar)
        .response {(request, response, avatarData, error) in
            if (error != nil) {
                self.handleConnectionError(error)
            } else {
                println(avatarData)
                let backgroundImage = NSImage(avatarData: NSData)
            }
    }

}

我尝试了几种语法变体,但我通常会遇到错误:

expected member name or constructor call after type name

和/或

missing argument for parameter 'flipped' in call


以下是println(avatarData)

的示例

Optional(<89504e47 0d0a1a0a 0000000d 49484452 0000001e 0000001e 08020000 01c35509 63000008 72494441 5448c705 ...

2 个答案:

答案 0 :(得分:3)

avatarData是一个NSData,NSImage有一个带NSData的构造函数,只需使用它:

let image = NSImage(data:avatarData!)

答案 1 :(得分:1)

您可以使用我编写的类,简化从Web上异步下载图像并使用NSImageView和Swift(由其他人从Objective-C版本移植)显示它们: https://github.com/davecom/DKAsyncImageView