Thanks for the lateral insight.
Ran a quick test and it looks as if  the defective

NSAssert([dict isKindOfClass:[NSMutableDictionary class]], @"dict is not mutable");

can be recomposed as

NSAssert([dict classForCoder] == [NSMutableDictionary class], @"dict is not mutable");

The recomposed assert catches the fault condition that the original missed.

Very useful, but given the nature of this I would hesitate to cook up an -isMutable category method.

By the way, putting isKindOfClass: NSMutableDictionary class into google code search implies that everyone is at it.

<[EMAIL PROTECTED]> wrote:
This is explained in the thread you referenced. All NSDictionary objects are instances of NSCFDictionary. Thus the only way to check if they are mutable through public API is to try mutating them and see if Cocoa throws a hissy fit.

You can use -classForCoder and that will give you either NSDictionary
or NSMutableDictionary. This is a public API but the result is not
documented to be useful in this manner, so don't use this in any
shipping app. (Although given the need for archives to remain
backwards compatible I would not expect it to ever change.) However it
could be handy for debugging purposes.

Mike

Jonathan Mitchell

Central Conscious Unit
http://www.mugginsoft.com




_______________________________________________

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 [EMAIL PROTECTED]

Reply via email to