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

Attachment: 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]

Reply via email to