2010-10-24 61 views
0

這裏是我使用的代碼:NSFileManager fileExistsAtPath:在iOS4.1上與SIGABRT崩潰,爲什麼?

NSFileManager* defaultMgr = [NSFileManager defaultManager]; 
if (![defaultMgr fileExistsAtPath:path]) { 
return nil; 
} 

其中,路徑是url到文件系統上,如:「文件://本地主機/私營/無功/移動/應用/ blahblahblah」

當調用fileExistsAtPath:時,它會與SIGABRT一起崩潰。該文件確實存在,也許字符串格式不是這種方法更喜歡的,但它應該只返回NO。這段代碼是一個非常受歡迎的庫的一部分,儘管我並不嚴格需要檢查路徑的存在,但我真的很想了解這裏發生了什麼,以防萬一我需要直接使用此方法。

特別:

  1. 是正確使用此方法庫的作者?
  2. 如何捕捉或期待這種方法的異常?
    (SDK文檔不討論此方法可能拋出的異常。)
  3. 這是我應該向Apple報告的錯誤嗎?

一個細節:我與iOS 4.1我的iPhone 4設備上運行此

回答

0

的幾個問題浮現在腦海中:

1)的NSFileManager可與路徑而不是URL。不需要「file://」。

2)它需要像@「...」這樣的NSString。

3)你應該儘量讓你的文件路徑在你的應用程序的沙箱中。

相關問題