gpt4 book ai didi

ios - 工作时未显示 UIActivityIndi​​catorView

转载 作者:行者123 更新时间:2023-11-28 23:10:45 24 4
gpt4 key购买 nike

我已经在我的应用程序的下一版本中对数据库进行了更改。

在主视图 Controller 的 viewDidLoad 的末尾,我调用了一个方法来检查数据库是否是最新的。如果不是,则在修复数据库时显示 UIActivityIndi​​catorView(需要 5-10 秒)。

那部分是这样的:

[self.view addSubview: activityView];

//repair database
...
//done

[activityView removeFromSuperview];

我想要加载应用程序,显示 UIActivityIndi​​catorView,修复数据库,关闭 UIActivityIndi​​catorView。

问题是这一切都发生在加载屏幕 (default.png) 期间。

我添加了一些日志记录来查看何时调用 activityView,何时更新数据库等,并可以确认所有这些都在加载屏幕期间被记录。

我应该怎么做才能解决这个问题?

最佳答案

问题是您正试图在主线程上完成所有这些工作。直到控制权返回到运行循环,UI 才真正更新。相反,您需要显示事件指示器,然后安排您的数据库工作在后台线程上完成。确保在此期间禁用 UI 输入。工作完成后,您可以回调主线程,移除事件指示器,并启用 UI 交互。

请注意,如果您这样做,您需要确保您的数据库工作以一种在后台线程上安全发生的方式完成(例如,如果您使用的是 CoreData,您的后台线程需要它自己的上下文,等等。 )

另请注意,如果您决定不这样做,而只是使用 default.png 显示,如果完成这项工作的时间超过 5-10 秒,您的应用程序实际上将最终终止,用户将永远无法成功启动它。

关于ios - 工作时未显示 UIActivityIndi​​catorView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8320483/

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