2012-12-16 54 views
3

我有一個問題,保存一些數據到文件。下面線返回NO:沒有成功createFileAtPath(「沒有這樣的過程」)

[self.fileManager createFileAtPath:fileString contents:photoData attributes:nil]; 

錯誤代碼是3和錯誤消息是「沒有這樣的過程」。 fileString變量指向一個文件名(例如,「file:// localhost/var/mobile/Applications/.../Library/Caches/photos/2-86290」),而photoData是一個NSData變量(儘管在調試告訴我它實際上是一個NSConcreteData變量)。

感謝您的閱讀!任何想法都會很棒。

+0

也檢查出這個答案。 http://stackoverflow.com/questions/15578179/createfileatpath-ocunit-errno-blues/27805592#27805592 – teradyl

回答

2

如果fileStringfile://開頭,那麼這不是一個路徑,它是一個文件URL的URL字符串。

如果你開始一個NSURL對象,並獲得fileString如下:

fileString = [someURL absoluteString]; 

然後將其更改爲:

fileString = [someURL path]; 

現在fileString將有你可以傳遞給一個有效的文件路徑createFileAtPath:方法。

另一種選擇,如果你想要寫的NSData對象photoData,就是要做到:

[photoData writeToURL:someURL atomically:YES]; 
+0

嗨馬迪,感謝您的解釋。有道理,解決問題! – Rogare

0

對我這樣的人誰前來尋找這個錯誤,沒有運氣另外一個答案。

看來如果你的文件名太長,你也會看到相同的錯誤信息。限制似乎大約爲250個字符。