I received a reply off-list suggesting that I file a bug. And I'll certainly do that, but before I do that I'd like to confirm that I'm not overlooking something obvious.
The fact that these methods throw exceptions if their input data cannot be processed is very uncharacteristic of the Cocoa frameworks. When invoking -archivedDataWithRootObject: on, say, dictionary, finding an un-encodeable object buried somewhere in the dictionary would seem to be quite common. Similarly, when invoking -unarchiveObjectWithFile:, no programmer can guarantee what may be found on the filesystem. Has anyone else ever noticed that these methods are exceptionally lame in their lack of error-handling capability? Is there something about the (un)archiving process which makes it particularly inefficient to detect and handle errors? Jerry On 2011 Jul 28, at 23:24, Jerry Krinock wrote: > With each major update of Mac OS X, Apple updates more classes to return > proper NSErrors, deprecating methods which either don't give errors or give > outmoded error representations. > > But what about NSKeyedArchiver and NSKeyedUnarchiver, in particular these > methods… > > +[NSKeyedArchiver archivedDataWithRootObject:] > +[NSKeyedUnarchiver unarchiveObjectWithFile:] > > -unarchiveObjectWithFile: takes a file, for heaven's sake. If someone has > messed with the file, eek, it raises an exception. I generally enclose these > methods in @try{} to avoid that. Very primitive! > > Does anyone know why these methods not marked for deprecation? Is there a > reason why we don't we have 21st-century archive/unarchive methods that > return errors instead of raise exceptions? _______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com