I have an iOS app where I'm storing files in the app's Documents directory,
and occasionally downloading new versions from the server to replace them.
The actual code is split across a number of files and classes, but the end
of the process goes like this:

- The download of the new data to a temporary file in NSTemporaryDirectory()
finishes successfully.
- I calculate the path I want to copy it to.
- I see that there's already a previous version of the file at that path.
- I try to use -[NSFileManager
replaceItemAtURL:withItemAtURL:backupItemName:options:resultingItemURL:error:]
to
swap in the new file.

That method returns NO for failure, so I check the error... but it's nil.
There's nothing there to tell me what the heck is failing. (In fact, when I
wasn't initializing my error pointer to nil, it was left as a garbage
pointer, and crashed my app.) My app put the original file there, so
(presumably) that path is writable. The file manager does return true from
-fileExistsAtPath: for both files.

The only thing that Google can turn up is this StackOverflow question. Same
exact symptoms. But, of course, no answers.
http://stackoverflow.com/questions/4899618/replaceitematurl-fails-without-error-on-ios-but-works-fine-on-osx

I can *remove* the file that I can't overwrite, and I can move the temp file
into Documents in the case where there isn't already a version on disk.
Obviously, neither of those cases uses replaceItemAtURL.

Does anyone know what circumstances might cause this failure? Any
recommendations on what things I should check next?

Sixten
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to