例如
NSString *path = @"XXX";
id obj = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
以及其他地方将通过 removeItemAtPath 删除此文件,是否可以安全地执行此操作?据我所知,如果我用archiver将文件写入文件并同时修改该对象,它会导致崩溃,但我不明白其中的本质,所以我想知道如果我这样操作将会发生什么。
答案 0 :(得分:2)
不,它不会崩溃。在没有进程打开文件之前,实际上不会删除文件。只要unarchiver打开文件进行阅读,您就可以尝试删除所有想要的内容而不会出现问题。完成unarchiver并关闭文件后,操作系统将实际删除该文件。
对于真正发生的事情来说,这有点过于简单,但它对你的问题应该足够好了。
有关更详细的说明,请参阅How do the UNIX commands mv and rm work with open files?和其他类似问题。 iOS是一种Unix类型的操作系统,因此当您阅读该问题和接受的答案时,所有提到的Unix都适用于iOS。如果您不熟悉Unix,rm
是在Unix中删除文件的命令。