我不知道如何正确放置,所以我将显示在图片中。
我首先创建URLSession
,从中获取数据JSON
,包括指向我想在同一模型中使用的数据的链接。
第一个链接:
从第一个请求中,我获得了我想在同一个表中使用的其他信息的链接:
来自第一个链接的链接:
我正在尝试从第一个和第二个链接获取数据并将其放在一个数据模型/表/单元格中。
我需要制作另一个URLSession
,但我不明白如何将信息放在一起。有可能URLSession
在另一个里面开火吗?有什么建议如何制作吗?
我不知道如何正确放置,所以我将显示在图片中。
我首先创建URLSession
,从中获取数据JSON
,包括指向我想在同一模型中使用的数据的链接。
第一个链接:
从第一个请求中,我获得了我想在同一个表中使用的其他信息的链接:
来自第一个链接的链接:
我正在尝试从第一个和第二个链接获取数据并将其放在一个数据模型/表/单元格中。
我需要制作另一个URLSession
,但我不明白如何将信息放在一起。有可能URLSession
在另一个里面开火吗?有什么建议如何制作吗?
我建议使用一些库来抽象一些复杂性 - Alamofire / SwiftyJSON
Alamofire.request(url, method: .get).responseJSON { response in
switch response.result {
case .success(let value):
let json = JSON(value)
//pull your links out of the json and make another request here
Alamofire.request(json["fixtures"]["competition"]["href"], method: .get).responseJSON { response in
switch response.result {
case .success(let value):
let json2 = JSON(value)
//handle the json from your second request
}
}
}
请记住,这是伪代码。不要试图剪切和粘贴——但它应该让你朝着大方向前进。
创建一个job queue
放置任务(=检索数据)的位置。
使用您的根 url 调用启动队列。当它从异步调用返回时,解析 JSON 数据 - 将本地结构填充为数据持有者。接下来的 1 或 2 个链接将跟随您放入队列中。
也许记住已经在数组中检索到的 URL,这样您就可以检查您是否没有两次读取某些数据。
注意:api 站点上有调用速率限制。如果您创建一个公共应用程序,那么您应该考虑如何将所有调用缓存在 50/24h 或 50/1min 以下
我想我找到了解决方案,应该使用“调度组”。