On Nov 1, 2012, at 00:53 , Rick Mann <rm...@latencyzero.com> wrote: > I have some old code that would try to open a file using > -openDocumentWithContentsOfURL:display:error:, if it existed and if it does > not exist, would call -makeDocumentWithContentsOfURL:ofType:error: on that > same URL, in an effort to create the missing document.
No, that's not what these are for. They both are used in opening an existing document file. > The code clearly expected to receive a valid document object from the call, > but instead it's returning nil and setting the error: Error > Domain=NSCocoaErrorDomain Code=260 "The file couldn’t be opened because it > doesn’t exist." > > Now, maybe this code never worked properly; it's a project I haven't touched > in a long time. But has the behavior of this method changed in the last > couple of OS releases? I have one of these default documents on disk; I just > can't remember if I created with this code or some other means. > > What's the difference between -openDocument… and -makeDocument…? It's fairly extensively documented in the NSDocumentController class reference: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSDocumentController_Class/Reference/Reference.html Very roughly, the 'make' method is used just to create a NSDocument object. The 'open' document does higher level stuff like bailing if a document object already exists for the file, or invoking the 'make' method and creating window controllers. NSDocumentController has two hierarchies of behavior, starting from the action methods 'openDocument:' and 'newDocument:'. Each level of the hierarchy is documented, so that you can override it yet know what the standard behavior is. _______________________________________________ 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