Re: NSDictionary mutability test
Re: NSDictionary mutability test
On 8 Dec 2008, at 19:05, I. Savant wrote:
I was using this assertion (written some time ago in ignorance)
and wasted
an afternoon tracking down the fact that it didn't work.
It does "work" - it does the job it's designed to do.
I'll join the fray on this one. :-) I agree with you, Sherm, to a
point. It works (does what it's designed to do), but because of the
special case of class clusters, it'd be handy in some cases to be able
to ask an object if it -isMutable.
Absolutely.
Maybe the only solution is to set up an exception handler.
No, the solution is to not try to test for mutability. Such tests
don't work
because they're not *supposed* to work - code that tries to do such
things
is broken as designed. And no, it's not an "ethical" issue. Writing
broken
code isn't a question of good and evil, it's simply a question of
what works
and doesn't work.
This is the most salient point. Either you (the developer) created
the dictionary or it was handed to you. If you created it, you should
know whether it is mutable. If you did not, the documentation (if it
exists) and the method signature should tell you all you need to know.
The only thing you could consider "broken" is if the method promises
an immutable object but gives you a mutable one (or vice-versa).
If there's ever an ambiguous situation and you need to enforce one
or the other, make a -copy or -mutableCopy of the object to be sure,
and rid yourself of the worry.
This is all fine and dandy but the original post makes it clear that
the mutability test is being applied in an NSAssert().
We are testing for broken promises and faulty assumptions.
Jonathan Mitchell
Central Conscious Unit
http://www.mugginsoft.com
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden