2011-09-02 44 views
1

我正在使用Mac应用程序,我需要它扫描用户iTunes资料库。任何想法我会怎么做呢?该应用程序会扫描图书馆寻找不同的歌曲属性。扫描iTunes资料库?

+0

Itunes库创建一个包含所有歌曲细节的XML,尝试解析它! – doNotCheckMyBlog

+0

这应该是诀窍!谢谢您的帮助。无论用户存储iTunes资料库的位置如何,您是否知道我可以找到该XML文件的方法? – Sam

回答

7

要查找iTunes库的实际最新位置(并且不希望它位于默认位置),请阅读~/Library/Preferences/com.apple.iApps.plistiTunesRecentDatabasesiTunesRecentDatabasePaths属性。

NSArray *libraryDatabases = [[[NSUserDefaults standardUserDefaults] persistentDomainForName:@"com.apple.iApps"] objectForKey:@"iTunesRecentDatabases"]; 
NSURL *libraryURL = (([libraryDatabases count])) ? [NSURL URLWithString:[dbs objectAtIndex:0]] : nil; 

对于更高级的代码片断找parserInstancesForMediaType:互动媒体IMBiTunesParser.m


对于实际的数据库分析,建议使用SAX解析器,如NSXMLParser(与一个树解析器,如NSXMLDocument,甚至更糟糕:NSPropertylistSerialization),因为一些用户的图书馆有高达甚至超过10万多条曲目。使用树解析甚至序列化会严重减慢并可能暂时阻止您的应用程序。

+0

这是更安全的方式,感谢新知识Regexident。 +1。 – doNotCheckMyBlog

+0

@krio:如果答案解决了您的问题,请点击答案旁边的绿色复选框以标记您的问题已解决。这使其他人更容易在StackOverflow上搜索正确的解决方案。与此同时,欢迎在StackOverflow留下不错的留言! :) – Regexident

+0

我希望我可以Regexident和我问问题时总是这样做。但是Sam问这个问题。大声笑然而,我投票给你。 – doNotCheckMyBlog