CoreMotion显然从后台线程调用UI API

ff1*_*f10 10 xcode uikit core-motion xcode10

在我的应用程序的某些时候,我正在初始化CMMotionManager.这发生在主线程上.完成后,Xcode 10主线程检查器指示

-[UIApplication applicationState] 
Run Code Online (Sandbox Code Playgroud)

没有从主线程调用.确实它来自

Thread name: com.apple.CoreMotion.MotionThread
Run Code Online (Sandbox Code Playgroud)

由于这是Apple的私人框架,在我看来,我只需要等到Apple的问题得到解决.我是否正确和/或有没有办法解决这个问题,而无需关闭主线程检查器?

Sky*_*org 2

目前,API 中存在一个错误,后台线程中正在触发某些内容。

我可以阻止它

lazy var motionManager = CMMotionManager()
Run Code Online (Sandbox Code Playgroud)

另请参阅https://github.com/JonasGessner/JGProgressHUD/issues/98,但目前没有解决方案。

  • 惰性调用只会推迟异常的发生。 (3认同)