我正在使用Mac应用程序,我需要它来扫描用户iTunes资料库。知道怎么回事吗?该应用程序将扫描库以查找不同的歌曲属性。
答案 0 :(得分:7)
要查找iTunes资料库的实际最新位置(并且不希望它位于默认位置),请阅读iTunesRecentDatabases
中的iTunesRecentDatabasePaths
或~/Library/Preferences/com.apple.iApps.plist
媒体资源。
NSArray *libraryDatabases = [[[NSUserDefaults standardUserDefaults] persistentDomainForName:@"com.apple.iApps"] objectForKey:@"iTunesRecentDatabases"];
NSURL *libraryURL = (([libraryDatabases count])) ? [NSURL URLWithString:[dbs objectAtIndex:0]] : nil;
要获得更高级的代码段,请在 iMedia 的IMBiTunesParser.m
中查找parserInstancesForMediaType:
对于实际的数据库解析,建议使用SAX解析器,例如NSXMLParser
(对比树解析器,例如NSXMLDocument
或更糟糕的:NSPropertylistSerialization
)用户拥有最多甚至超过100,000个曲目的图书馆。使用树解析甚至序列化将严重减慢并可能暂时阻止您的应用。