在删除文件时取消归档文件时是否可能崩溃?

时间:2015-12-10 02:36:07

标签: ios nskeyedarchiver nskeyedunarchiver

例如

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

以及其他地方将通过 removeItemAtPath 删除此文件,是否可以安全地执行此操作?据我所知,如果我用archiver将文件写入文件并同时修改该对象,它会导致崩溃,但我不明白其中的本质,所以我想知道如果我这样操作将会发生什么。

1 个答案:

答案 0 :(得分:2)

不,它不会崩溃。在没有进程打开文件之前,实际上不会删除文件。只要unarchiver打开文件进行阅读,您就可以尝试删除所有想要的内容而不会出现问题。完成unarchiver并关闭文件后,操作系统将实际删除该文件。

对于真正发生的事情来说,这有点过于简单,但它对你的问题应该足够好了。

有关更详细的说明,请参阅How do the UNIX commands mv and rm work with open files?和其他类似问题。 iOS是一种Unix类型的操作系统,因此当您阅读该问题和接受的答案时,所有提到的Unix都适用于iOS。如果您不熟悉Unix,rm是在Unix中删除文件的命令。