Swift MusicKitプログラミング その7

Swift MusicKitプログラミング その7

Limit以上を取得

一度では取得出来ません。
処理としては

  • 続きがあるか確認(hasNextBatch)
  • 続きを取得(nextBatch(limit:))
    Limit指定可能
    Limitを指定しない場合は5

となります。

Task() {
    print("\nExample 5 --------------------")
    var request = MusicCatalogSearchRequest(term: "氷室京介", types: [Song.self])
    request.limit = 25
    let response = try await request.response()
    var songs: MusicItemCollection<Song> = response.songs
    songs.forEach({
        print($0)
    })
    
    var countSongs = songs.count
    while songs.hasNextBatch == true {
        if let songsNext = try await songs.nextBatch(limit: 25) {
            songs = songsNext
            songs.forEach({
                print($0)
            })
            countSongs = countSongs + songs.count
        }
    }
    print("Songs count:\(countSongs)")
}
Example 5 --------------------
Song(id: "681932641", title: "KISS ME", artistName: "氷室京介")
Song(id: "681186219", title: "ANGEL", artistName: "氷室京介")
:
:
:
:
Song(id: "1447070924", title: "KISS ME Originally Performed By 氷室京介 (オルゴール)", artistName: "オルゴールサウンド J-POP")
Song(id: "1446233601", title: "JEALOUSYを眠らせて Originally Performed By 氷室京介 (オルゴール)", artistName: "オルゴールサウンド J-POP")
Songs count:431

Swift

Posted by shi-n