首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主线程检查器:在后台线程iOS 11 Xcode 9 GM种子上调用的UI API

主线程检查器:在后台线程iOS 11 Xcode 9 GM种子上调用的UI API
EN

Stack Overflow用户
提问于 2017-09-18 12:10:46
回答 1查看 6K关注 0票数 2

有人能帮我调试一下这个问题吗?从我开始用iOS 11 GM种子处理Xcode 9 GM种子时,我的代码在控制台中向我发出警告:

代码语言:javascript
复制
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地图时,我会得到以下错误:

代码语言:javascript
复制
  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有关。谁能帮我调试这个问题吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-09-18 23:09:08

Xcode 9添加了一个新的运行时检查,即主线程检查器

根据苹果公司的文件:

Main thread Checker是Swift和C语言的独立工具,用于检测后台线程上AppKit、UIKit和其他API的无效使用。在主线程之外的线程上更新UI是一个常见错误,可能导致UI更新丢失、视觉缺陷、数据损坏和崩溃。

你的Xcode 8应用程序中已经出现了这个问题,只是检测它的工具还没有出现。

在您的例子中,似乎是对UIApplication.shared.applicationState的调用导致了这个运行时问题。

您可以配置您的应用程序方案,以便在发生时停止执行。它是“诊断”选项卡中的“主线程检查器”部分中的复选框。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46278957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档