Re: Problems with ScriptingBridge and iTunes
Re: Problems with ScriptingBridge and iTunes
- Subject: Re: Problems with ScriptingBridge and iTunes
- From: Christopher Nebel <email@hidden>
- Date: Mon, 3 Mar 2008 12:22:33 -0800
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 (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:
This email sent to email@hidden