On 2010 Mar 03, at 13:52, Keith Blount wrote:
> So, here is my error-setting:
<code snipped out>
Assuming this code is in your -readFromURL:ofType:error: implementation, it
looks OK to me, except that I'd suggest you give that error a nonempty domain
and a nonzero code. For the former, [[NSBundle mainBundle] bundleIdentifier]
is a quick hack. But I have no reason to believe that this will work any
better.
> That works okay, except that the failure reason doesn’t get displayed.
Well Keith, what do you expect from a free implementation :)) I agree; the
NSError presentation built into Cocoa is too way too wimpy. Failure to display
the failure reason is probably one of the many reasons why I wrote my own.
> The documentation clearly states that you can tell NSDocument not to present
> an error by setting its domain to NSCocoaErrorDomain and its code to
> NSUserCancelledError:
Yes, that is true.
> However, this simply doesn’t work for NSDocument’s -readFromURL:ofType:error:
> I have tried to set outError as follows:
>
> if (outError)
> *outError = [NSError errorWithDomain:NSCocoaErrorDomain
> code:NSUserCancelledError userInfo:nil];
I'm not sure where you've put that code, but it's probably wrong. Here is what
works for me. I subclass NSDocumentController and put the following override
in that subclass.
- (NSError *)willPresentError:(NSError*)error {
[SSYAlert alertError:error] ;
return [NSError errorWithDomain:NSCocoaErrorDomain
code:NSUserCancelledError
userInfo:nil] ;
}
In the above, SSYAlert is my alert class. In this case, since the document
failed to be created, there is no window to attach a sheet to, so it produces a
dialog.
I suppose the idea is that, even though, according to "Message Flow in the
Document Architecture", "The NSDocument object reads the contents of the file
by sending the readFromURL:ofType:error: message to itself", the failed
NSDocument instance fails to initialize and returns the error down the call
stack to -[NSDocumentController initWithType:error:].
> I could put all of the information into NSLocalizedDescriptionKey, but this
> looks horrible as it’s all in bold
Ah, yes. That's another reason why I don't use Cocoa's error presentation. I
hate that boldface crap.
_______________________________________________
Cocoa-dev mailing list ([email protected])
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 [email protected]