On Mar 1, 2008, at 5:28 PM, Hannes Petri wrote:

I want to retrieve the path to the currently played file in iTunes. I thought scripting bridge would be the perfect tool for this, however i've run into some problem. I have this code:

iTunesApplication *iTunes = [[SBApplication alloc] initWithBundleIdentifier:@"com.apple.iTunes"];
iTunesTrack *currentTrack = [iTunes currentTrack];
        
if ([currentTrack isKindOfClass:[iTunesFileTrack class]]) {
        …
}

The problem is, that the class of the object returned is _always_ iTunesTrack, and not iTunesFileTrack, as i expect it to be.

As described in the Scripting Bridge Release Note under Lazy Evaluation (using precisely this as an example, no less), SBObjects are not evaluated until you either try to get some concrete data from them (e.g., "name"), or until you invoke -get. "currentTrack" is nothing more or less than a reference to "the current track in iTunes". If you want to find out precisely what it is *now*, do this:

        iTunesTrack *currentTrack = [[iTunes currentTrack] get];

-isKindOfClass: will then give you the answer you seek.


--Chris Nebel
AppleScript Engineering

_______________________________________________

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