2015-11-06 72 views
1
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)! 

當我運行應用程序,我看到調試NSImage中未能打開一個BMP圖像文件

 
/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

要使用NSImage(named:)初始值設定項,必須將圖像文件嵌入到Xcode項目中。

示例圖像名稱「hello.jpg」:

let img = NSImage(named: "hello") 

如果你的應用程序內部存在的圖像這隻會工作。

而且目前要傳遞的路徑到NSImage中初始化,而不僅僅是文件名,你應該與此named初始化。另一方面,要從文件系統加載圖像(此時未包含在您的應用中),您可以在路徑中使用NSImage(contentsOfFile:)或使用路徑的NSURL使用NSImage(contentsOfURL:)