Я работаю над приложением 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];
}
Это известная проблема со Scripting Bridge или я использую ее неправильно?