调试NSImage打开BMP图片文件失败

Debugging NSImage's failure to open a BMP image file

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 的预览中打开图像,它会正确显示。

要使用 NSImage(named:) 初始化程序,图像文件必须嵌入到您的 Xcode 项目中。

图像名称示例 "hello.jpg":

let img = NSImage(named: "hello")

只有当图像存在于您的应用程序中时,这才有效。

目前您正在将 path 传递给 NSImage 初始值设定项,而不仅仅是您应该使用此 named 初始值设定项的文件名。

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