Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 主线程检查器:在后台线程IOS11Xcode 9GM种子上调用UI API_Objective C_Xcode_Multithreading_Ios11_Xcode9 - Fatal编程技术网

Objective c 主线程检查器:在后台线程IOS11Xcode 9GM种子上调用UI API

Objective c 主线程检查器:在后台线程IOS11Xcode 9GM种子上调用UI API,objective-c,xcode,multithreading,ios11,xcode9,Objective C,Xcode,Multithreading,Ios11,Xcode9,从我开始使用Xcode 9 GM seed和iOS 11 GM seed时起,有人能帮我调试这个问题吗?我的代码在控制台中向我发出警告说: 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: 2015

从我开始使用Xcode 9 GM seed和iOS 11 GM seed时起,有人能帮我调试这个问题吗?我的代码在控制台中向我发出警告说:

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.
2017-09-18 16:22:53.176524+0530*********[359:20063]任务。已完成,但出现错误-代码:-999
2017-09-18 16:22:53.178923+0530******[359:20142]任务。HTTP加载失败(错误代码:-999[1:89])
2017-09-18 16:22:53.179821+0530****[359:20063]任务。已完成,但出现错误-代码:-999
2017-09-18 16:22:53.180089+0530******[359:20063]任务。已完成,但出现错误-代码:-999
2017-09-18 16:22:53.180365+0530******[359:20063]任务。已完成,但出现错误-代码:-999
2017-09-18 16:22:53.180523+0530******[359:20142]未能获取
TCPIO连接在AddInPurthandler中。

应用程序与Xcode 8 iOS 10.3.3配合使用效果良好。问题似乎出在Xcode 9上。有人能帮我调试这个问题吗。谢谢,Xcode 9添加了一个新的运行时检查,这是最新的

根据苹果的文档:

主线程检查器是Swift和C语言的独立工具 检测应用程序上AppKit、UIKit和其他API的无效使用 背景线程。在主线程以外的线程上更新UI 是一个常见的错误,可能会导致错过UI更新,视觉效果不佳 缺陷、数据损坏和崩溃

您的Xcode 8应用程序中已经存在此问题。只是检测它的工具还不存在

在您的情况下,似乎是对
UIApplication.shared.applicationState
的调用导致了此运行时问题

您可以将应用程序方案配置为在发生时停止执行。它是诊断选项卡中的一个复选框,位于主线程检查器部分下。

具有相同的“已完成,错误代码:-999”内容。知道如何修复它会很有趣。