很抱歉问这么简单,但这是我在Swift中的第一个程序...我尝试从NSData创建一个NSImage,其中包含我从磁盘加载的JPEG图像(URL在数组名称chooseFiles [])。
编译器在第二次发出错误并且卡住了:'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) {
这似乎工作(至少对编译器而言)。我对么?
答案 0 :(得分:2)
您可以使用swift数据来获取图片:
do {
let imageData = try Data(contentsOf: chosenFiles[0])
NSImage(data: imageData)
} catch {
print("Unable to load data: \(error)")
}
答案 1 :(得分:0)
现在在swift3中,NSData被Data替换。从url下载图像时,将其存储为Data not NSData。
imageView.image = NSImage.init(data: data! as Data)