我的iOS应用程序有一些在后台线程上运行的数据处理。数据处理可能需要一些时间才能完成,因此我会定期检查backgroundTimeRemaining以查看是否需要在应用程序被杀之前进行整理并停止数据处理。
为此我打电话:
[[UIApplication sharedApplication] backgroundTimeRemaining]
使用最新的XCode,现在会导致运行时错误:
Main Thread Checker: UI API called on a background thread: -[UIApplication backgroundTimeRemaining]
有没有办法获取backgroundTimeRemaining而不是每次都将回调添加回主线程?这似乎比它应该更痛苦......?
THX 麦克
答案 0 :(得分:0)
UIApplication是UIKit的一部分。从UIKit的文档中可以看出:
重要 除非另有说明,否则仅从应用程序的主线程或主调度队列中使用UIKit类。此限制特别适用于从UIResponder派生的类或涉及以任何方式操纵应用程序的用户界面的类。
所以这个调用需要在主线程上。