非常简单的问题,但在Apple的文档中似乎并不清楚。
writeToFile:atomically:
,NSData
等NSArray
是否会覆盖文件中的现有数据?
答案 0 :(得分:204)
是。它会。
以下是一些传递30个字符限制的字符。
答案 1 :(得分:4)
方法writeToFile:atomically:
始终覆盖文件,无论atomically:
是或否。
来自Apple docs的信息(NSData,部分"保存数据"):
NSData类及其子类提供快速和 轻松将其内容保存到磁盘。为了将数据丢失的风险降至最低, 这些方法提供了以原子方式保存数据的选项。原子 写保证数据可以全部保存,也可以保存 彻底失败了。通过将数据写入a来开始原子写入 临时文件。如果此写入成功,则该方法移动 临时文件到最终位置。
没有关于检查文件是否存在的说法。
例如,对于docs中的方法copyItemAtPath:toPath:error:
(NSFileManager,讨论部分),专门针对此类检查编写:
如果dstPath上已存在同名文件,则此方法 停止复制尝试并返回相应的错误。