gpt4 book ai didi

ios - OAuthSwift 闭包捕获值不起作用

转载 作者:行者123 更新时间:2023-11-30 13:35:17 29 4
gpt4 key购买 nike

func queryProducts() -> Array<String> {
var final = [String]()
var temp = [String]()
self.oauthswift.client.get("http://api.v3.factual.com/t/products-cpg?q=coke",
success: {
(data, response) in
let dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
let json = JSON(data: data)


if json["status"].stringValue == "ok" {
// we're OK to parse!
for result in json["response"]["data"].arrayValue {
final.append(result["product_name"].stringValue)

}

}
temp = final

}

, failure: { error in
print(error)
})


return temp

}

大家好,Swift 新手,我一直在尝试从这个成功处理程序中获取值,但似乎没有任何效果。在闭包内我可以打印我想要的数组。

最后,我尝试返回附加了所有产品名称的最终数组。

它应该返回什么:[“Cola Diet Plus”、“Zero Sixer”、“Cola Diet Sweetened With Splenda”、“Cola Diet”、“Coke Diet”、“Cola Diet Cherry”、“Cola Diet with Lemon”、“Cola Diet Twin Pack”、 “可乐 Vanilla ”、“可乐减肥 Vanilla ”、“可乐减肥”、“可乐减肥加柠檬”、“可乐减肥不含咖啡因”、“可乐减肥加柠檬”、“可口可乐”、“可乐减肥不含咖啡因”、 “柠檬可乐减肥”、“糖浆减肥”、“可乐减肥”、“柠檬可乐减肥”]

它返回什么:[]

任何建议都会很棒!

最佳答案

你不能就这样回来。你必须使用闭包。

    func queryProducts(successCallback: ([String])->Void) {
var final = [String]()
var temp = [String]()
self.oauthswift.client.get("http://api.v3.factual.com/t/products-cpg?q=coke",
success: {
(data, response) in
let dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
let json = JSON(data: data)


if json["status"].stringValue == "ok" {
// we're OK to parse!
for result in json["response"]["data"].arrayValue {
final.append(result["product_name"].stringValue)

}

}
temp = final
successCallback(temp) // callback here

}

, failure: { error in
print(error)
})

}

然后你可以这样调用:

queryProducts() {
arrayProducts in
// doing something, arrayProduct is temp array
}

关于ios - OAuthSwift 闭包捕获值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36144805/

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