Will writeToFile:atomically: overwrite data?

Objective CIos

Objective C Problem Overview


Really simple question but it doesn't seem to be clear in Apple's docs.

Will writeToFile:atomically: for NSData, NSArray etc. overwrite existing data on a file?

Objective C Solutions


Solution 1 - Objective C

Yes. writeToFile:atomically: will.

Solution 2 - Objective C

Method writeToFile:atomically: ALWAYS OVERWRITE FILE, regardless of the atomically: YES or NO.

Information from Apple docs (NSData, section "Saving Data"):

> The NSData class and its subclasses provide methods to quickly and > easily save their contents to disk. To minimize the risk of data loss, > these methods provide the option of saving the data atomically. Atomic > writes guarantee that the data is either saved in its entirety, or it > fails completely. The atomic write begins by writing the data to a > temporary file. If this write succeeds, then the method moves the > temporary file to its final location.

No one word about checking if file exist.

For example, for method copyItemAtPath:toPath:error: in docs (NSFileManager, section Discussion) specifically written about such checking:

> If a file with the same name already exists at dstPath, this method > stops the copy attempt and returns an appropriate error.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJiho KangView Question on Stackoverflow
Solution 1 - Objective CBJ HomerView Answer on Stackoverflow
Solution 2 - Objective CIgorView Answer on Stackoverflow