On Sep 18, 2013, at 6:53 AM, Brian Clark <ba-cl...@comcast.net> wrote:
> A follow-up as a result of more testing. > > It's not actually necessary to do the read via > -revertToContentsOfURL:ofType:error: in a "File Access" block to solve the > problem I had, though I'm sure it's best to do so (and that's what I now do). > > Similarly moving the file to the Trash or deleting it should probably also be > done in a "File Access" block, and that's what I now do to. > > But there's an exception to this rule. In my app, if the displayed file is > marked as to be trashed, it's moved to the Trash when the window is closed in > the document's -close method (before calling [super close] ). But this > results in a hang if it's done inside a [self > performSynchronousFileAccessUsingBlock:^{ ... }]; block. So in this case a > "File Access" block apparently can't be used. FYI: You can get help discovering the cause of hangs involving performSynchronousFileAccessUsingBlock (and performActivityWithSynchronousWaiting:usingBlock:) by doing 'po _NSDocumentSerializationInfo()' in the debugger. > > On Sep 16, 2013, at 12:24 PM, Kevin Perry <kpe...@apple.com> wrote: > >> But, I suspect the problem here is that you're not using File Coordination >> when reading in the contents of the new file. By not doing that, you're not >> giving File Coordination the hint that it needs to check back with your >> NSFilePresenter (the NSDocument) for its presentedItemURL. When you read in >> the contents of the new file you should: >> >> 1) Start a "File Access" with -performSynchronousFileAccessUsingBlock: or >> -performAsynchronousFileAccessUsingBlock >> 2) Create an NSFileCoordinator instance with the NSDocument as the >> NSFilePresenter passed in the initializer. >> 3) Using that NSFileCoordinator, take a coordinated read of the target file >> 4) Inside the coordinated read: read the contents of the new file >> (-revertToContentsOfURL:ofType:error: is probably the most correct here, as >> it will update -fileURL, -fileModificationDate, -fileType, change counts, >> and other internal state as necessary) > > _______________________________________________ > > 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: > https://lists.apple.com/mailman/options/cocoa-dev/kperry%40apple.com > > This email sent to kpe...@apple.com _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com