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
}嘿,各位,新手斯威夫特和我一直试图从这个接班人那里获取价值,但似乎没有什么效果。在闭包中,我能够打印我想要的数组。
最后,我试图返回带有所有产品名称的最终数组。
它应该返回的是:“可乐饮食加”、“零六餐”、“可乐饮食加增白剂”、“可乐饮食樱桃”、“可乐配柠檬饮食”、“可乐双餐包”、“可乐香草”、“可乐减肥香草”、“可乐饮食”、“可乐柠檬饮食”、“无可乐饮食咖啡因”、“柠檬配餐”、“可口可乐”、“不含可乐饮食咖啡因”、“可乐配餐加柠檬”,“喷泉糖浆饮食”、“可乐饮食”、“柠檬可乐饮食”
它返回的内容:[]
任何建议都会令人惊奇!
发布于 2016-03-22 02:29:44
你不能那样回来。你必须用封闭型。
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
}https://stackoverflow.com/questions/36144805
复制相似问题