gpt4 book ai didi

swift - 为什么我的串行调度不起作用?

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

我想加载一些已经存储在核心数据中的天气数据。显然我希望 Collection View 在加载数据后自行更新。有人可以告诉我,为什么这段代码不起作用?

let context = PersistanceService.context
let fetchRequest: NSFetchRequest<Weather> = Weather.fetchRequest()
let queue = DispatchQueue(label: "loadanddisplay")
queue.sync {
do {
let result = try context.fetch(fetchRequest)
self.weatherArray = result
self.collectionView?.reloadData()

} catch let err { print(err) }
}

当我在执行此函数后手动重新加载数据时,它会显示出来。

最佳答案

下面的代码块在后台线程上执行

queue.sync {}

并且 Collection View 是主线程的一部分,或者更确切地说,UI 必须仅从线程处理/更新。

您可以尝试如下方法来重新加载 Collection View :

DispatchQueue.main.async { // async OR sync as you want
self.collectionView?.reloadData()
}

关于swift - 为什么我的串行调度不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51989099/

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