Objective-C загружает iTunes Music Library.xml в NSTableView - PullRequest
0 голосов
/ 10 февраля 2011

Я прочитал много руководств по синтаксическому анализу XML, но мне было интересно, кто-нибудь может объяснить различные типы синтаксического анализа XML и какой из них лучше для производительности, так как я хочу загрузить iTunes Music Library.XML в табличное представление, в приложении Mac. Также было интересно, если кто-нибудь может предоставить учебник о том, как это сделать тоже.

1 Ответ

3 голосов
/ 10 февраля 2011

Самый простой способ сделать это - просто использовать 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.Документация может быть найдена здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...