如何使用 Swift 从 NSData 创建 NSImage

How to create a NSImage from a NSData with Swift

很抱歉问这么简单,但这是我在 Swift 中的第一个程序...我尝试从 NSData 创建一个 NSImage,其中包含我从磁盘加载的 JPEG 图像(URL 在数组中名称 choseFiles[]).

编译器第二次发出错误,我卡住了:'NSData' 不能隐式转换为 'Data';您是要使用 'as' 来显式转换吗?

谢谢

let imageAsNSData = NSData(contentsOf: chosenFiles[0])  // UIKit/UIImage for iOS not MacOS !
let imageAsNSImage = NSImage(data: imageAsNSData)
if (imageAsNSImage) {
   // image could be created from NSData
   //

} else {

   // image could NOT be created from NSData
   //

}

----- 编辑 -----

我试过了

let imageAsNSImage = NSImage(data: imageAsNSData! as Data) if (imageAsNSImage != nil) { 这似乎有效(至少对于编译器而言)。我对么?

现在在 swift3 中 NSData 被 Data 取代了。当您从 url 下载图像时,将其存储为数据而不是 NSData。

imageView.image = NSImage.init(data: data! as Data)

您可以使用 swift 数据获取您的图像:

do {
    let imageData = try Data(contentsOf:  chosenFiles[0])
    NSImage(data: imageData)
} catch {
    print("Unable to load data: \(error)")
}