On 2 Mar '08, at 4:54 AM, Steven Degutis wrote:
I think it's clear why [currentTrack isKindOfClass:[iTunesFileTrack class]] evaluates to true: in the previous line, you defined it as such, like this: iTunesTrack *currentTrack = [iTunes currentTrack]; So obviously it is an iTunesTrack!
No. It could be an instance of a subclass of iTunesTrack, such as (in this case) iTunesFileTrack. (That's true of any object-oriented language.)
Try this: iTunesFileTrack *currentTrack = [iTunesFileTrack currentTrack];
That won't even compile. You can't assign an iTunesTrack* to an iTunesFileTrack*.
Moreover, since Obj-C is a dynamic language, it's more important what the class of the object is at runtime, than what type the pointers are defined as at compile time. You can change the type declarations, but it won't affect what actual objects you get back at runtime.
—Jens
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ 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]