On Mar 1, 2008, at 7:28 PM, Hannes Petri wrote:
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. If i run the following applescript code:

tell application "iTunes" to current track

I get a "file track", which makes it possible to fetch the path using the "location" attribute. If I, in the ObjC example, try [currentTrack location], I'm told that it doesn't respond to that selector. I have made certain that the object is of class iTunesTrack by typing 'po [currentTrack class]' in gdb.

I ran into the same thing -- Scripting Bridge may play games isKindOfClass: that bite us. My work-around is to test by class name:

if ([[track className] isEqualToString:@"ITunesURLTrack"]) { /* ... */ }

| Jonathan 'Wolf' Rentzsch   http://rentzsch.com
| Red Shed Software           http://redshed.net
|     "better" necessarily means "different"

_______________________________________________

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