调试NSImage无法打开BMP图像文件

时间:2015-11-06 17:48:45

标签: swift nsimage

var fileManager:NSFileManager = NSFileManager()
var imagePath:String = "/Users/dumbledad/Documents/flower.bmp"
var msg:String = (fileManager.fileExistsAtPath(imagePath) ? " exists" : " does not exist")
print(imagePath + msg)
var imageNS = NSImage(named: imagePath)!

当我运行应用程序时,我看到了

/Users/dumbledad/Documents/flower.bmp exists
fatal error: unexpectedly found nil while unwrapping an Optional value

和错误Thread 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

如何调试NSImage无法打开图像文件的原因?如果我在Finder中预览中打开图像,它会正确显示。

1 个答案:

答案 0 :(得分:1)

要使用NSImage(named:)初始值设定项,必须将图像文件嵌入到Xcode项目中。

图像名称“hello.jpg”的示例:

let img = NSImage(named: "hello")

仅当图片存在于您的应用内时,此功能才有效。

目前,您正在将路径传递给NSImage初始化程序,而不仅仅是文件名,而不是named初始化程序。

另一方面,要从文件系统加载图片(这次,不包含在您的应用中),您可以将NSImage(contentsOfFile:)与您的路径一起使用,或NSImage(contentsOfURL:)使用您的路径的NSURL。