【问题标题】:Not able to iterate through SPTPlaylistList items无法遍历 SPTPlaylistList 项目
【发布时间】:2018-11-18 00:49:28
【问题描述】:

我正在尝试访问 Spotify 用户的所有播放列表

 let request2: URLRequest = try! SPTPlaylistList.createRequestForGettingPlaylists(forUser: self.username, withAccessToken: accessToken)
    print(request2)
    SPTRequest.sharedHandler().perform(request2) { (error, response, data) in
        if error == nil {
            print(response)
            let playlists = try! SPTPlaylistList(from: data, with: response)
}else{
            print(error)
        }
    }

如果我打印“播放列表”,我可以看到播放列表

some([<SPTPartialPlaylist: 0x10aa854d0>: john mayer [2 tracks] (spotify:user:virajdeshpande88:playlist:3BLBrqb3CURu5KFPqdYqd1), <SPTPartialPlaylist: 0x10aa922a0>: beatles [2 tracks] (spotify:user:virajdeshpande88:playlist:2t6z8KEhZGzY7Tqvy8QoW4)])

但我无法单独访问播放列表或遍历 playlists.items。如果我执行以下操作:

print (playlists.items[0])

我得到“在展开可选值时意外发现 nil”。

更新:我尝试使用 playlistsForUser:withAccessToken:callback: 并且我现在可以访问所有用户的播放列表。但它似乎只有在下面的代码块位于我上面发布的代码的 if {} 块内时才有效。如果这个块是单独放置的,我会再次得到 nil 值错误。

    SPTPlaylistList.playlists(forUser: self.username, withAccessToken: accessToken, callback: {(error, playlist_list)  in
    if error == nil {
        let list = playlist_list as! SPTPlaylistList
        print(list.items[0])
        print(list.items[1])
        let playlist = list.items[0] as! SPTPartialPlaylist
        print(playlist.name)
    }else{
        print("latest error")
       }
})

【问题讨论】:

    标签: swift sdk spotify


    【解决方案1】:

    你应该避免使用强制解包!

        if let request2: URLRequest = try? SPTPlaylistList.createRequestForGettingPlaylists(forUser: self.username, withAccessToken: accessToken){
            print(request2)
            SPTRequest.sharedHandler().perform(request2) { (error, response, data) in
                if error == nil {
                    print(response)
                    if let playlists = try? SPTPlaylistList(from: data, with: response) {
                        playlists.forEach{ playlist in
                            print(playlist)
                            // do thing with your each playlist
                        }
                    }
                }else{
                    print(error)
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      • 2021-11-21
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多