2011-09-02 73 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