gpt4 book ai didi

swift - 无法迭代 SPTPlaylistList 项目

转载 作者:行者123 更新时间:2023-11-30 11:25:47 25 4
gpt4 key购买 nike

我正在尝试访问 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 {} block 内时,它似乎才起作用。如果这个 block 单独放置,我会再次收到 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")
}
})

最佳答案

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

    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)
}
}
}

关于swift - 无法迭代 SPTPlaylistList 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50752502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com