Swift 2.3を使用して音楽アプリを作成しています。私が見つけた問題は、私のMPMediaQuery.artistsQuery()がすべてのアーティストを提供していないことです。 iTunesを使って、「アルバムは様々なアーティストによる曲の編集です」がチェックされていれば、そのアーティストは私のtableViewに表示されません。たとえば、iTunesを使用してインポートしたCDの1つ(テーブルビューに表示されないもの)は、Little River Band、Greatest Hitsです。 iTunesはそれがさまざまなアーティストの編集だと思っているようだが、私は同意しないが、まだシナリオを処理する必要がある。iOS MPMediaQuery.artistsコンパイルがチェックされていると、すべてのアーティストがクエリを返しません。
var qryArtists = MPMediaQuery.artistsQuery()
qryArtists.groupingType = MPMediaGrouping.Artist
// Set the cell in the table
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// I am using the custom class that I created called: myCustomArtistTableViewCell
let cell = tableView.dequeueReusableCellWithIdentifier("artistIdCell", forIndexPath: indexPath) as! myCustomArtistTableViewCell
let currLoc = qryArtists.collectionSections![indexPath.section].range.location
let rowItem = qryArtists.collections![indexPath.row + currLoc]
cell.artistTitle.text = rowItem.items[0].artist
return cell
}
表のセクションはすべて問題ありません。私はちょうど少数の芸術家が欠けている:リトルリバーバンド。
また、サンプルアルバムのすべての曲のアーティストタグには、リトルリバーバンドという文字列が含まれています。私はそのアーティストと他のいくつかが除外されている理由を理解できないようです。助けてくれてどうもありがとう。
ありがとう!それは動作します! Swift 2.3では、私は以下を使用しました: var qryArtists = MPMediaQuery.songsQuery() qryArtists.groupingType = MPMediaGrouping.Artist。 私はそれがなぜ働いたのか分かりました。また、私がサンプリングしたリトルリバーバンドCDのためにiTunesが「様々なアーティストによる曲の編集」をチェックした理由を知りたいと思っています。そのアルバムのアーティストは "多様"とは言わない。アルバムタイトルには "Greatest Hits"というフレーズが含まれています。アトランティックリバーセクションでも同じこと、そのアルバムタイトルには「ベストオブ」が含まれています。これがより簡単でより一貫しているように思えます。 – James64