У меня довольно простая проблема. Я хочу разместить аудиофайлы в моем виде таблицы. Как я могу отличить их от PDF-файлов и фильмов и т. Д.
Я получаю их из iTunes через Scripting Bridge:
iTunesSource *source = [[[self iTunes] sources] objectAtIndex:0];
iTunesPlaylist *mainPlaylist = [[source libraryPlaylists] objectAtIndex:0] ;
library_ = [[NSArray arrayWithArray:[mainPlaylist tracks]] retain ] ;
Это дает мне ошибку, говоря, что класс iTunesFileTrack не может быть найден (во время соединения)
:
[track get];
if(![track isKindOfClass:[iTunesFileTrack class]]) {
DLog1(@"SKIPPING kind: %@", [track kind]);
}
Я уверен, что упускаю что-то простое:)
На заметку по теме: Есть ли более быстрый способ чтения библиотеки iTunes? Я просто совет по загрузке из файла XML, но это кажется мне небезопасным. Если в следующем выпуске Apple что-то изменит, я облажался.
Спасибо
РЕДАКТИРОВАТЬ: С sdef /Applications/iTunes.app | sdp -fhm --basename iTunes
я могу сгенерировать файл .m, который мне нужно проверить для класса. Но это не похоже на работу:
[track get];
if(![[track className] isEqualToString:@"ITunesFileTrack"]) {
DLog1(@"SKIPPING kind: %@", [track kind]);
continue;
}
Skipps только мои потоки: P Не фильмы. (Даже когда я добавляю (track.videoKind != iTunesEVdKNone)
). Даже PDF-файлы являются iTunesFileTracks. Но .h заявляет:
// a track representing an audio file (MP3, AIFF, etc.)
@interface iTunesFileTrack : iTunesTrack