作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
试图获取用户播放列表中的所有轨道,它在 Objective-C 演示应用程序中工作,但当我在 Swift 中尝试时,它返回这个:
<SPTPlaylistList: 0x7fca22d72460>: 0-0 of 1 items (Function)
我正在使用这段代码:
SPTPlaylistList.playlistsForUserWithSession(session, callback: { (error, object) -> Void in
if error == nil {
var playlists = object as! SPTListPage
println(playlists)
SPTPlaylistSnapshot.playlistWithURI(playlists.items[0].uri, accessToken: session.accessToken, callback: { (error:NSError!, obj) -> Void in
var playl = obj as! SPTPlaylistSnapshot
println(playl.firstTrackPage.tracksForPlayback)
})
}
})
这是正在运行的 Objective-C 代码:
[SPTPlaylistList playlistsForUserWithSession:session callback:^(NSError *error, id object) {
SPTListPage *aa = object;
NSLog(@"%@",aa.items);
[SPTPlaylistSnapshot playlistWithURI:[NSURL URLWithString:@"spotify:user:spotifizr:playlist:3bpGFVfycGnhtcEVb95G98"]
accessToken:session.accessToken
callback:^(NSError *error, SPTPlaylistSnapshot *object) {
NSLog(@"tracks on page 1 = %@", [object.firstTrackPage tracksForPlayback]);
}];
}];
不确定为什么会返回 (function)
在 Swift 项目中而不是所有轨道中。
编辑:尝试过
println(playl.firstTrackPage.tracksForPlayback())
但现在它返回零,尽管我的播放列表中有 50 首轨道。
最佳答案
您需要在请求的范围中包含以下一项或两项(如果它们尚不存在):SPTAuthPlaylistReadScope
和 SPTAuthPlaylistReadPrivateScope
分别允许访问用户的公共(public)和私有(private)播放列表。
请参阅 https://github.com/spotify/ios-sdk 的身份验证和范围部分
关于ios - SPTPlaylistSnapshot tracksForPlayback 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31010708/
试图获取用户播放列表中的所有轨道,它在 Objective-C 演示应用程序中工作,但当我在 Swift 中尝试时,它返回这个: : 0-0 of 1 items (Function) 我正在使用这段
我是一名优秀的程序员,十分优秀!