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中预览中打开图像,它会正确显示。
答案 0 :(得分:1)
要使用NSImage(named:)
初始值设定项,必须将图像文件嵌入到Xcode项目中。
图像名称“hello.jpg”的示例:
let img = NSImage(named: "hello")
仅当图片存在于您的应用内时,此功能才有效。
目前,您正在将路径传递给NSImage初始化程序,而不仅仅是文件名,而不是named
初始化程序。
另一方面,要从文件系统加载图片(这次,不包含在您的应用中),您可以将NSImage(contentsOfFile:)
与您的路径一起使用,或NSImage(contentsOfURL:)
使用您的路径的NSURL。