On Oct 15, 2008, at 06:20, Ruotger Skupin wrote:

Hi,

when comparing the class of two objects I usually do [obj1 isKindOfClass:[obj2 class]]. But if I say have the Class as an input value to a method:

- (void) bla:(Class) inClass
{
        if (/* inClass is an NSString */)
        {
                // do stuff
        }
        else if (/* inClass is an NSNumber */)
        {
                // do other stuff
        }
}

Is it save to compare like this:

        inClass == [NSString class]

or do I have to e.g.:

        [[NSNumber numberWithInt:0] isKindOfClass:inClass]


It's generally unwise to do this kind of thing if you're dealing with class clusters or bridged classes (which category includes both NSString and NSNumber). The class you actually get may not be what you're expecting.

If you're doing it with your own classes, it's safer, but can be fragile, since it's one more thing you're going to need to remember to change if you change your inheritance hierarchy.

+Melissa

_______________________________________________

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