2012-11-13 33 views
0

我試圖從我的應用程序和box中的Documents目錄內的目錄樹中讀取大量文件。 他們中的大多數是XML文件我與閱讀:錯誤256通過NSString的initWithContentsOfFile讀取

NSData *data = [NSData dataWithContentsOfFile:packagefile. 
RXMLElement *rxml = [RXMLElement elementFromXMLData:data]; 

所有,但一個他們讀確定。但是一個不讀,我得到錯誤代碼256 對於壞的文件我也可以嘗試:

NSData *data = [NSData dataWithContentsOfFile:packagefile options:0 error:&err]; 

,但相同的錯誤代碼回來。 (因此我認爲我的問題與文件的實際xml內容無關)。

清除沙盒並在程序中以編程方式將所有文件複製回來沒有任何區別。

這裏有什麼問題?我還可以做些什麼?

+0

錯誤代碼256是如何返回的?我只能看到一個'NSError'被返回。 – trojanfoe

+0

http://stackoverflow.com/questions/5103788/nsurl-into-nsdata-cocoa-error-256 – trojanfoe

+0

錯誤代碼在NsError裏面 –

回答

0

我找到了解決這個問題的辦法('莫名其妙的錯誤代碼256')。希望這個解決方案能夠幫助其他遇到這個問題的開發者。

它已經用完了文件句柄。

在我的應用程序中,我還有一個日誌記錄功能,記錄文件的活動(有點像Log4J)。這取得了每個記錄的語句 - 使用'NSFileHandle'打開一個文件,然後是'seekToEndOfFile',然後是'writeData'。

我錯誤地依靠ARC處置和關閉日誌程序退出時的文件。很明顯,ARC不會而不是關閉文件,並最終系統用盡文件句柄。

該解決方案只是在Java或C中調用'closeFile'。