gpt4 book ai didi

ios - 将多个查询结果添加到数组中

转载 作者:行者123 更新时间:2023-11-30 12:58:48 25 4
gpt4 key购买 nike

我正在尝试从解析数据库运行 4 个查询,每个查询仅提取 1 个对象。我试图将每个对象添加到一个数组中,然后可以在 Collection View 中使用该数组。查询成功运行,但应用程序崩溃,因为它正在提取空值。这是我的代码:

var query1desc = ""
var query2desc = ""
var descs = [String]()

fileprivate func fetchUsers() {

let query1 = PFQuery(className: "Messages")
query1.limit = 1
query1.findObjectsInBackground{
(objects, error) -> Void in
if error == nil {
if objects?.count == 0 {
} else {
let object = objects![0] as! PFObject
self.query1desc = object["message"] as! String
}

}
}
let query2 = PFQuery(className: "Messages")
query2.limit = 1
query2.findObjectsInBackground{
(objects, error) -> Void in
if error == nil {
if objects?.count == 0 {
} else {
let object = objects![0] as! PFObject
self.query2desc = object["message"] as! String
}
}
}

self.descs = [self.query1desc, self.query2desc]
self.collectionView.reloadData()

有谁知道解决这个问题的方法,以便 self.descs 不仅仅提供 nil 值?当我在查询本身中打印时,我知道正在拉动对象。提前致谢。

最佳答案

我认为 desc 变量保留 nil 值,因为您的程序正在执行数组赋值代码部分,而完成处理程序仍在处理查询请求。您需要等到所有查询请求完成后才能收集所有结果。

let workGroup = DispatchGroup()

let queueForQuery1 = DispatchQueue(label: "firstQuery")
let query1 = PFQuery(className: "Messages")
query1.limit = 1

workGroup.enter()

queueForQuery1.async(group:workGroup) {

query1.findObjectsInBackground{ (objects, error) -> Void in

if error == nil {
if objects?.count == 0 {
} else {
let object = objects![0] as! PFObject
self.query1desc = object["message"] as! String
}
}
workGroup.leave()
}
}

let queueForQuery2 = DispatchQueue(label: "secondQuery")
let query2 = PFQuery(className: "Messages")
query2.limit = 1

workGroup.enter()


queueForQuery2.async(group:workGroup) {

query2.findObjectsInBackground{ (objects, error) -> Void in

if error == nil {
if objects?.count == 0 {
} else {
let object = objects![0] as! PFObject
self.query1desc = object["message"] as! String
}
}
workGroup.leave()
}
}

workGroup.notify(queue: DispatchQueue.main){
self.descs = [self.query1desc, self.query2desc]
self.collectionView.reloadData()
}

关于ios - 将多个查询结果添加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40097808/

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