Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Comparing the Class




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 (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:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden
References: 
 >Comparing the Class (From: Ruotger Skupin <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.