On Aug 24, 2013, at 06:15 , Markus Spoettl <ms_li...@shiftoption.com> wrote:
> It seems no matter what I do, I can't get incremental saving to work. The > more sub-wrappers my package wrapper contains, the longer it takes for the > document to get saved. It doesn't matter how many sub-wrappers actually > changed, the time it takes to save increases with the number of wrappers. > > The documentation in UIDocument's > -writeContents:toURL:forSaveOperation:originalContentsURL:error: helpfully > states that if one wants incremental saving, one has to implement it there. I > took that to mean that UIDocument's use of NSFileWrapper doesn't support > incremental saving for some reason. The file wrapper optimization is not, AFAIK, regarded as incremental saving, though the intended effect is of course somewhat similar. > So I went and implemented my own -writeContents::::: that essentially calls > the root package wrapper's -writeToURL:options:originalURL:error:. This > method's documentation states that it implements incremental saving by using > hard links for unchanged content. Still, the performance is unchanged > compared to UIDocument's own implementation. What file wrapper are you returning from 'contentsForType:error:'? Are you constructing it there? If so, that might explain why all the files are being re-written. Normally, you'd keep track of the file wrapper originally passed to 'loadFromContents:ofType:error:', and return *that* at save time, after replacing the sub-wrappers for any files that have changed. Using that approach, I've never run into a problem with the hard-linking optimization for unchanged files. _______________________________________________ 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