2017-01-29 6 views
0

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 
} 

表のセクションはすべて問題ありません。私はちょうど少数の芸術家が欠けている:リトルリバーバンド。

また、サンプルアルバムのすべての曲のアーティストタグには、リトルリバーバンドという文字列が含まれています。私はそのアーティストと他のいくつかが除外されている理由を理解できないようです。助けてくれてどうもありがとう。

答えて

1

artistでグループ化された.songs()クエリを使用すると、すべてのアーティスト(編集曲だけのものを含む)が含まれているようです。

スウィフト3例:

let query = MPMediaQuery.songs() 
query.groupingType = MPMediaGrouping.artist 

それともMPMediaQuery拡張として

extension MPMediaQuery { 
    public static func artistsAll() -> MPMediaQuery { 
     let query = MPMediaQuery.songs() 
     query.groupingType = MPMediaGrouping.artist 
     return query 
    } 
} 

使用法:

let query = MPMediaQuery.artistsAll() 
+0

ありがとう!それは動作します! Swift 2.3では、私は以下を使用しました: var qryArtists = MPMediaQuery.songsQuery() qryArtists.groupingType = MPMediaGrouping.Artist。 私はそれがなぜ働いたのか分かりました。また、私がサンプリングしたリトルリバーバンドCDのためにiTunesが「様々なアーティストによる曲の編集」をチェックした理由を知りたいと思っています。そのアルバムのアーティストは "多様"とは言わない。アルバムタイトルには "Greatest Hits"というフレーズが含まれています。アトランティックリバーセクションでも同じこと、そのアルバムタイトルには「ベストオブ」が含まれています。これがより簡単でより一貫しているように思えます。 – James64

関連する問題