gpt4 book ai didi

arrays - 如何将解析数据放入数组中

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

我需要使用查询将数据放入数组中,但它仅适用于 block 。我搜索到这里,发现这是因为findObjectsInBackgroundWithBlock是异步的,但是我怎样才能使它同步呢?

var cities = [String]()

func loadCityArray() {

let citiesVisited = PFQuery(className: "Trips")
citiesVisited.whereKey("userId", equalTo: (PFUser.currentUser()?.objectId)!)

citiesVisited.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if let objects = objects {
for object in objects {
let city = object["cityId"] as! String

let query = PFQuery(className: "Cities")
query.whereKey("objectId", equalTo: city)
query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in
if let objects = objects {
for object in objects {
self.cities.append(object["cityName"] as! String)
}
}
})
}
}

最佳答案

您不想在主线程上使其同步。强烈建议不要这样做。

您宁愿将请求中所需的内容存储在实例变量中,并告诉相应的 View Controller block 中存在新值。

编辑:

假设您有一个对象正在等待使用数据:

var chart : DataConsumer?

在获取数据的 block 中,

chart.useData(data)

编辑 2:

useData 函数应该跟踪数据集中的更改并利用新数据到达的信息。例如,通过显示它。

关于arrays - 如何将解析数据放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35065377/

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