gpt4 book ai didi

ios - 在 viewWillDisappear 上显示事件指示器

转载 作者:行者123 更新时间:2023-11-28 08:36:00 26 4
gpt4 key购买 nike

viewWillDisappear 上,我需要更新很多 Core Data 记录,这样做会在我从一个 viewController 移动到另一个(通过 Tab View Controller)时造成延迟.)

在我的 viewWillDisappear 方法中,我调用了 settingsChanged(),如下所示:

override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
//other things
if anySettingChanged {
settingsChanged()
}
}

func settingsChanged() {
// attempt to display activity indicator view
context.performBlockAndWait { // on private queue
// update a lot of Core Data records
// attempt to hide activity indicator view
}
}

但是,尽管 View 在滞后期间可见,但我无法更新消失的 View 。我只是想以某种方式显示正在发生的事情,而不是延迟 2-3 秒。 但我似乎无法显示事件指示器 View ! (我使用主线程来更新 View !)

使用:

context.performBlock 

解决了滞后问题,但导致错误,因为我的下一个 viewControllers 依赖于 Core Data 完成更新。具体我得到

"Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSCFSet: 0x12824cde0> was mutated while being enumerated.'"

最佳答案

你在这里做什么是为了覆盖 viewWillDisappear 方法,所以你过早地调用了 super 引用,试试这个:

override func viewWillDisappear(animated: Bool) {
//other things
if anySettingChanged {
settingsChanged()
}
super.viewWillDisappear(animated)
}

关于ios - 在 viewWillDisappear 上显示事件指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37678541/

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