2016-01-19 76 views
1

我正在使用Alamofire和SwiftyJSON来访问Youtube的API并获得频道的播放列表数。我的问题是,YouTube每个页面(或请求)只返回5个项目,我不知道如何访问其余的!Swift- JSON请求与多个页面

func getPlaylists() { 
    Alamofire.request(.GET, playlistURL).validate().responseJSON { response in 
     switch response.result { 
     case .Success: 
      if let value = response.result.value { 
       let json = JSON(value) 
       print(json["items"].count) //Always returns 5 
      } 
     case .Failure(let error): 
      print(error) 
     } 
    } 
} 

任何人都可以让我知道如何访问下一组结果吗?

回答

0

你会在API文档中找到答案,可能在这里YouTube Data API

注意:在您的请求中,您可以使用查询参数设置每页最大项目数:maxResults。这可以是5到50,默认等于5.

当您收到响应时,服务器将返回一个JSON,其中包含JSON值"nextToken": <string>。在您的下一个请求中使用此值,您可以在其中插入查询参数pageToken=<string>

您可能会修改您的getPlaylists方法,使其采用参数nextToken: String。最初使用空字符串调用此方法或更好地将其初始化为nil

在完成处理程序中,从JSON响应中检索"nextToken"值。如果存在,请使用此参数调用您的方法。否则,你得到了所有的页面。

您的方法getPlaylists也应该有一个完成处理程序。在检索完所有页面后调用完成处理程序。