任何人都可以帮助我调试这个问题,从我开始使用 Xcode 9 GM 种子和 iOS 11 GM 种子开始,我的代码在控制台中向我发出警告:
2017-09-18 16:22:52.872716+0530 **** *****[359:20158] [reports] Main Thread Checker: UI API called on a background thread: -[UIApplication
applicationState] .PID: 359, TID: 20158,
Thread name: Runtime Network Callback Thread,
Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
另外,我在我的应用程序中使用 ESRI 地图,每当我放大或缩小 ESRI 地图时,我都会收到此错误:
2017-09-18 16:22:53.176524+0530 *** ***[359:20063] Task <5F9376DB-9335-
4A45-B3F0-1D6FD69A19A3>.<29> finished with error - code: -999
2017-09-18 16:22:53.178923+0530 *** ***[359:20142] Task <0DE282EA-3FBD-
4036-8298-C75EFA65F15A>.<40> HTTP load failed (error code: -999 [1:89])
2017-09-18 16:22:53.179821+0530 *** *[359:20063] Task <BE2D8BAE-FFB8-
43CA-8723-111326DEF4FD>.<31> finished with error - code: -999
2017-09-18 16:22:53.180089+0530 *** ***[359:20063] Task <E7C819D4-C11A-
4915-B021-A73F31BE89CD>.<33> finished with error - code: -999
2017-09-18 16:22:53.180365+0530 *** ***[359:20063] Task <3B871761-B006-
4220-B857-6204B385AD34>.<34> finished with error - code: -999
2017-09-18 16:22:53.180523+0530 *** ***[359:20142] Failed to get
TCPIOConnection in addInputHandler.
应用程序在 Xcode 8 iOS 10.3.3 上运行良好。问题似乎出在 Xcode 9 上。任何人都可以帮我调试这个问题吗?谢谢
Xcode 9 添加了新的运行时检查,即主线程检查器 https://developer.apple.com/documentation/code_diagnostics/main_thread_checker.
根据苹果文档:
主线程检查器是一个适用于 Swift 和 C 语言的独立工具
检测 AppKit、UIKit 和其他 API 的无效使用
后台线程。在主线程以外的线程上更新 UI
是一个常见错误,可能会导致错过 UI 更新、视觉更新
缺陷、数据损坏和崩溃。
您在使用 Xcode 8 的应用程序中已经遇到了这个问题。只是还没有检测它的工具。
就你而言,这似乎是一个电话UIApplication.shared.applicationState
这导致了这个运行时问题。
您可以将应用程序配置为在发生这种情况时停止执行。它是一个复选框诊断选项卡,在主线程检查器部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)