gpt4 book ai didi

json - 为 Alamofire 创建回调,我可以用它来操作 JSON

转载 作者:行者123 更新时间:2023-11-30 13:14:28 24 4
gpt4 key购买 nike

在过去的三天里,我一直试图在这方面取得一些进展,但无论我尝试什么,我似乎都无法解决如何解决这个问题。这个答案让我(我认为)几乎一直到那里(但不完全):Capturing data from Alamofire

我想做的是获取应用程序的评论数量。因为 Alamofire 异步执行网络调用,所以我尝试创建一个回调,然后允许我实际使用它返回的 JSON。在下面的代码中,我尝试在 Alamofire 函数之外获取评论 JSON,并将其分配给 reviewJSON 变量,以便我可以用它来执行操作。我做错了什么?

import UIKit
import SwiftyJSON
import Alamofire


class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

let appStoreReviewsURL: String = "https://itunes.apple.com/de/rss/customerreviews/id=529479190/json"


func getDataFromInterwebs(theURL: String, complete:(reviews: JSON) -> ()) {

Alamofire.request(.GET, theURL).responseJSON { response in
guard response.result.error == nil else {
print("error calling GET ")
print(response.result.error!)
return
}

if let value = response.result.value {
let appReviewsFromAppStore = JSON(value)
complete(reviews: appReviewsFromAppStore)
}
else {
print("error parsing")
}

}
}


override func viewDidLoad() {
super.viewDidLoad()

var reviewJson = getDataFromInterwebs(appStoreReviewsURL){ completion in
return completion}

print(reviewJson)
}

最佳答案

请尝试以下方法。看看它是否适合您

//像这样更改 getDataFromInterwebs

func getDataFromInterwebs(theURL: String, complete:(reviews: JSON) -> Void) {

Alamofire.request(.GET, theURL).responseJSON { response in
guard response.result.error == nil else {
print("error calling GET ")
print(response.result.error!)
return
}

if let value = response.result.value {
let appReviewsFromAppStore = JSON(value)
complete(reviews: appReviewsFromAppStore)
}
else {
complete(reviews: "Error occured while trying to parse data")
print("error parsing")
}

}
}
}

然后在viewdidload中是这样的

    override func viewDidLoad() {
super.viewDidLoad()
getDataFromInterwebs(appStoreReviewsURL) { (reviews) in
var reviewJson = reviews
dispatch_async(dispatch_get_main_queue(), {
self.didGetRattingJson(reviewJson)
})
}
}

最后

func didGetRattingJson(reviewJson: JSON) {
//do whatever you want to do here
}

关于json - 为 Alamofire 创建回调,我可以用它来操作 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38384094/

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