Я работаю над приложением Cocoa, которое отслеживает то, что вы слушаете в iTunes, и, поскольку я ориентируюсь на Mac OS 10.5 и выше, я решил использовать Scripting Bridge .
Если я попытаюсь закрыть iTunes слишком близко ко времени, когда мое приложение опрашивает его для текущей дорожки, iTunes немедленно перезапустится!Единственный способ надежно предотвратить такое поведение - сначала выйти из приложения, а затем закрыть iTunes.
Переключение на EyeTunes решает проблему, но это довольно старая кодовая база, и я надеялся,мог бы сделать это без внешней библиотеки.Конечно, я делаю что-то не так, что вызывает перезапуск?
Вот пример кода;этот фрагмент запускается каждые несколько секунд и вызывается NSTimer
.
#import "iTunesBridge.h" // auto-generated according to Apple's docs
-(void)updateTrackInfo {
iTunesApplication *iTunes = [[SBApplication alloc] initWithBundleIdentifier:@"com.apple.iTunes"];
iTunesTrack *currentTrack = [iTunes currentTrack];
// inspect currentTrack to determine what's being played...
[iTunes release];
}
Это известная проблема со скриптовым мостом или я его неправильно использую?