2014-12-29 60 views
0

當在Mac應用程序轉換PathForResource至字符串返回零斯威夫特

let urlpath = NSBundle.mainBundle().pathForResource("myResource", ofType: "html"); 

加載本地資源文件中的資源路徑轉換爲stringNSURL總是返回nil

println("resource path = \(urlpath)") <---resource logged ok 

    web.frameLoadDelegate = self; 
    let requesturl = NSURL(string: urlpath!) 

    println("URL String = \(requesturl)"),<---- returns nil 

    let request = NSURLRequest(URL: requesturl!) 
    web.mainFrame.loadRequest(request) 

這大概就是爲什麼即時獲取錯誤found nil while unwrapping an Optional value 我在這裏錯過了什麼,以正確地將pathForResource轉換爲string

+0

你的意思是將資源路徑字符串轉換爲NSURL權利? –

+0

是的,我想我需要得到一個字符串值? (第一次嘗試mac應用程序開發,所以我可能會錯) – JSA986

+0

如果您顯示println()語句的實際輸出將會很有幫助。 –

回答

0

在萊昂納多的回答提供的代碼應工作,是更容易,更安全 方法具有可選的結合。這就是爲什麼你的 代碼失敗的解釋:

let requesturl = NSURL(string: urlpath!) 

回報nil因爲urlpath文件路徑而不是URL字符串 (如「文件:///路徑/到/文件」 )。

如果更換符合

let requesturl = NSURL(fileURLWithPath: urlpath!) 

那麼你會得到預期的輸出。

+0

好的,但是這給了我一樣的'urlPath''可選(file:/// Users/***** **/Library/Developer/Xcode/DerivedData/Electrical_Calcula tors-askhpxrxvlxbdxcfdbyosdczzquo/Build/Products/Debug/Electrical%20Calculators.a pp/Contents/Resources/myResource.html)' – JSA986

+0

我認爲問題現在顯示html文件作爲即時得到它現在加載(有點),感謝解釋 – JSA986

+0

@ JSA986:奇怪,我測試了你的確切代碼,並且第一個println產生了輸出'resource path = Optional(「/ Users /.../ Build/Products/Debug/Electrical Calculator.app/Contents/Resources/myResource.html「)',不帶'file:///'。 –

4
if let myFileUrl = NSBundle.mainBundle().URLForResource("yourFile", withExtension: "html"){ 
      // do whatever with your url 
} 
+0

感謝您的回答,加1 – JSA986

+0

不客氣 –