我在我的应用程序中使用 ESRI map 。当我在 iOS 10 中运行该应用程序时,加载 ESRI map 没有问题,放大和缩小也可以正常工作。但是当我使用 iOS 11 运行相同的应用程序时,它给了我
Main Thread Checker: UI API called on a background thread: -[UIApplication
applicationState]
PID: 485, TID: 72091, Thread name: Runtime Network Callback Thread, Queue
name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4 Altus Mobile 0x00000001006f4844 -
[AGSRequestOperation kickoffConnection] + 1108 .
5 Foundation 0x0000000185987a50 <redacted> + 340
6 CoreFoundation 0x0000000184f40358 <redacted> + 24
7 CoreFoundation 0x0000000184f402d8 <redacted> + 88
8 CoreFoundation 0x0000000184f3fb60 <redacted> + 204
9 CoreFoundation 0x0000000184f3d738 <redacted> + 1048
10 CoreFoundation 0x0000000184e5e2d8
CFRunLoopRunSpecific + 436
11 Foundation 0x00000001858866e4 <redacted> + 304
12 Altus Mobile 0x00000001007dbf28 -
[AGSThreadTargetImpl mainRoutine] + 292
13 Foundation 0x0000000185987860 <redacted> + 996
14 libsystem_pthread.dylib 0x0000000184bc432c <redacted> + 308
15 libsystem_pthread.dylib 0x0000000184bc41f8 <redacted> + 0
16 libsystem_pthread.dylib 0x0000000184bc2c38 thread_start + 4
2017-10-26 13:11:41.375952+0530 Altus Mobile[485:72091] [reports] Main
Thread Checker: UI API called on a background thread: -[UIApplication .
applicationState]
我知道 Apple 在最新的 Xcode 版本中启用了 Main Thead Checker,它告诉我们是否在后台使用任何 UI 主线程。只是为了确保问题出在 ESRI Maps 已经评论了 ESRI map 的加载部分,主线程检查器问题没有出现,但是当我取消评论它时,再次发布。此外,当我放大和缩小 ESRI map 时
2017-10-26 13:11:41.659743+0530 Altus Mobile[485:72060] Task <504051EF-9770-
4852-AFB8-C47DF112DA52>.<30> finished with error - code: -999
有没有人在 ESRI map 上遇到过类似的问题?任何帮助表示赞赏。谢谢你。
最佳答案
是的,我在 iOS 11 中使用 ArcGIS SDK 版本 100.0.0 时遇到了同样的问题。将 ArcGIS SDK 升级到 100.1.1 为我解决了这个问题。
关于multithreading - ESRI 映射提供主线程检查器 : UI API called on a background thread in iOS 11,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46948673/