Самый простой способ сделать это - просто использовать NSDictionary dictionaryWithContentsOfFile:
NSString* libraryPath = @"~/Music/iTunes/iTunes Music Library.xml";
NSDictionary* musicLibrary = [ NSDictionary dictionaryWithContentsOfFile: libraryPath ];
Также обратите внимание, что пользователи могут перемещать свою музыкальную библиотеку, поэтому более полный пример:
NSString* libraryPath = @"~/Music/iTunes/iTunes Music Library.xml";
NSUserDefaults* prefs = [ NSUserDefaults standardUserDefaults ];
[ prefs synchronize ];
NSDictionary* iAppsPrefs = [ prefs persistentDomainForName: @"com.apple.iApps" ];
NSArray* recentPaths = [ iAppsPrefs objectForKey: @"iTunesRecentDatabasePaths" ];
if( [ recentPaths count ] > 0 ) {
libraryPath = [ recentPaths objectAtIndex: 0 ];
}
NSDictionary* musicLibrary = [ NSDictionary dictionaryWithContentsOfFile: libraryPath ];
Для действительно больших библиотек чтение содержимого может занять несколько секунд, поэтому лучше всего это сделать в потоке.
После того, как вы это загрузите, посмотрите на структуру iTunes Music Library.xml в текстовом редакторе.чтобы увидеть, как вам придется пройтись по дереву, чтобы отформатировать информацию в соответствии с вашими потребностями.
РЕДАКТИРОВАТЬ:
С iTunes 11 Apple теперьпредоставление платформы OSX для доступа к библиотеке iTunes.Документация может быть найдена здесь .