Ok Jens, my method turned so complicated due to hundreds of relationships, undo, fileWrappers, copy/paste, new object IDs... That I'm going to do as you say.
I am going to load the image and leave it within the NSView object. When I delete an NSView containing the image, I put its pointer within the undo stack, then I release the NSView (which doesn't get deallocated therefore). Thin way when invoking the undo, I get back all the relashionships that object had with other objects. When saving, I write the image's NSData within the filePackage. When re-loading a file, I read that NSData and create the image. It sounds linear and clean. Good luck to myself. I'll let you know. Regards -- Leonardo > Da: Jens Alfke <j...@mooseyard.com> > Data: Sat, 8 Feb 2014 16:37:01 -0800 > A: Leonardo <mac.iphone....@gmail.com> > Cc: <cocoa-dev@lists.apple.com> > Oggetto: Re: Managing image loading > > > On Feb 8, 2014, at 3:58 AM, Leonardo <mac.iphone....@gmail.com> wrote: > >> When the user imports a new image, I quickly copy the image to a temporary >> folder, then I add this latest file reference to the document¹s >> NSFileWrapper. >> I just create the file¹s fileWrapper using its URL, so I do not read its >> content and create the fileWrapper by the NSData. > > This seems like a hacky workaround for the kind of temporary storage that > you'd already get from virtual memory. See below. > >> Why don¹t I add the file¹s NSData to the fileWrapper but I add just its URL >> reference? Because I don¹t really know whether the fileWrapper uses the disk >> or keeps the NSData in memory. So in case of a 1GB file I do not engulf the >> app. > > It's a 64-bit app, presumably, so you have no worries about running out of > address space. If physical RAM is running low, then the OS will just write > part of your address space to disk to make room; when you access that address > space again, it'll read it back in. > > Basically the virtual memory system is going to do what your > temporary-file-copying solution would have done, only it's doing it more > efficiently because (a) it only writes it to disk if there's not enough RAM; > (b) it only copies as much of the data as needed; and (c) it'll free up that > disk space automatically later on. > > I think I asked this before, but: Do you already have a running app that is > having performance problems working with large or lots of images? Or are you > simply imagining that your app might run into these problems, without knowing > whether that's true? In the latter case, _especially_ if you're a novice > developer or new to the platform, please put off worrying about performance > until later. > > Jens _______________________________________________ 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