2015-12-10 33 views
0

例如當我在刪除文件時取消存檔時,可能會崩潰嗎?

NSString *path = @"XXX"; 
id obj = [NSKeyedUnarchiver unarchiveObjectWithFile:path]; 

和其他地方會由removeItemAtPath刪除這個文件,無論是安全的呢?據我所知,如果我使用歸檔程序向文件寫入對象,並在同一時間修改該對象,則會導致崩潰,但我不瞭解這個對象的本質,所以我想知道如果我這樣操作會發生什麼。

回答

2

不,它不會崩潰。在沒有進程打開文件之前,文件實際上並未被刪除。只要unarchiver具有可供閱讀的文件,您就可以嘗試刪除所有您想要的內容而不會造成問題。一旦unarchiver完成並關閉文件,操作系統將實際刪除文件。

這是對真正發生的事情過於簡單化,但它應該足以滿足您的問題。

有關更詳細的解釋,請參閱How do the UNIX commands mv and rm work with open files?和其他類似問題。 iOS是一個Unix類型的操作系統,所以當你閱讀這個問題和被接受的答案時,所有提到的Unix都適用於iOS。如果您在Unix中不流利,rm是在Unix中刪除文件的命令。

+0

很好的答案。 (投票) –

相關問題