CoreMotion 显然是从后台线程调用 UI API
Posted
技术标签:
【中文标题】CoreMotion 显然是从后台线程调用 UI API【英文标题】:CoreMotion apparently calls UI API from background thread 【发布时间】:2018-11-20 17:35:57 【问题描述】:在我的应用程序的某个时刻,我正在初始化一个 CMMotionManager。这发生在主线程上。这样做之后,Xcode 10 主线程检查器会指示
-[UIApplication applicationState]
没有从主线程调用。确实是来自
Thread name: com.apple.CoreMotion.MotionThread
由于这是 Apple 的私有框架,在我看来,我只需要等到 Apple 方面解决此问题即可。我是否正确和/或有什么方法可以在不关闭主线程检查器的情况下解决此问题?
【问题讨论】:
【参考方案1】:它目前是 API 中的一个错误,正在后台线程中触发。
我可以阻止它
lazy var motionManager = CMMotionManager()
另见https://github.com/JonasGessner/JGProgressHUD/issues/98,但目前没有解决方案。
【讨论】:
惰性调用只会推迟异常。以上是关于CoreMotion 显然是从后台线程调用 UI API的主要内容,如果未能解决你的问题,请参考以下文章
主线程检查器:在后台线程上调用的 UI API:-[UIApplication applicationState]
iOS:主线程检查器:在后台线程上调用的 UI API:-[UIView retainCount]
主线程检查器:在后台线程上调用 UI API iOS 11 Xcode 9 GM Seed
从非 UI 线程调用 Snackbar.make() 是如何工作的?
在 SceneKit 中使用 GIFU 库播放 GIF 会导致应用程序 UI 冻结任何解决方案? UIView Animated 从后台线程调用