gpt4 book ai didi

ios - Swift:为什么闭包函数调用迟了

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

我有两个功能:

class ProductController: NSObject {

var products = [Product]()

func getData(){

let json = JSONParser()
let path = "http://localhost:8888/myApi/product/read.php"

json.getRequest(url: path) { (products) in
self.products = products
print("closure")
print(self.products)
}
}

func getPr() -> [Product]{
return self.products
}
}

我正在打电话:

 let pc = ProductController()
pc.getData()
print(pc.getPr())

但是 pc.getData() 的调用总是最后一次,所以我从 pc.getPr() 得到了 []。如何在调用 getPr() 之前从 getData() 获取产品?

最佳答案

你可以试试补全

func getData(completion: @escaping (_ anyData: [Product]) -> Void) {
let json = JSONParser()
let path = "http://localhost:8888/myApi/product/read.php"

json.getRequest(url: path) { (products) in
self.products = products
print("closure")
print(self.products)
completion(products)

}

然后这样调用它

pc.getData() { products in

print(products)
print(pc.getPr())
}

关于ios - Swift:为什么闭包函数调用迟了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49647173/

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