_decodeGhostPointEncoding中的EXC_BAD_ACCESS

时间:2015-07-02 14:46:13

标签: ios objective-c

更新到iOS 8.4(2天后)后,我的应用程序因以下错误而崩溃。我要做的就是放大/缩小mapView。我该如何调试?崩溃似乎不是来自我的代码的任何部分。除了Xcode控制台下面的崩溃,我看到

uncompress returned -3
uncompress returned -3
uncompress returned -3


Thread 7Queue : com.apple.root.default-qos (concurrent)
#0  0x000000018e70c0ec in _decodeGhostPointEncoding ()
#1  0x000000018e55bc08 in -[GEOVectorTile(VMP4) _readPolygons:ofType:] ()
#2  0x000000018e55ac48 in -[GEOVectorTile(VMP4) _readPolygons:] ()
#3  0x000000018e553564 in -[GEOVectorTile(VMP4) _initWithVMP4:localizationData:tileKey:] ()
#4  0x000000018e55220c in -[GEOVectorTile initWithTileData:localizationData:tileKey:] ()
#5  0x000000018e551ee8 in -[GEOVectorTileDecoder decodeTile:forKey:] ()
#6  0x000000018e586dc4 in __49-[GEOTileLoaderInternal _loadedTile:forKey:info:]_block_invoke419 ()
#7  0x0000000101580fd4 in _dispatch_call_block_and_release ()
#8  0x0000000101580f94 in _dispatch_client_callout ()
#9  0x000000010158eb54 in _dispatch_root_queue_drain ()
#10 0x0000000101590248 in _dispatch_worker_thread3 ()
#11 0x000000019745d22c in _pthread_wqthread ()
Enqueued from com.apple.geo.tile-loader.0x14754bd80 (Thread 8)Queue : com.apple.geo.tile-loader.0x14754bd80 (serial)
#0  0x0000000101582700 in dispatch_async ()
#1  0x000000018e550b7c in -[GEOTileLoaderInternal _loadedTile:forKey:info:] ()
#2  0x000000018e550608 in __40-[GEOTileServerRemoteProxy _handleTile:]_block_invoke ()
#3  0x0000000101580fd4 in _dispatch_call_block_and_release ()
#4  0x0000000101580f94 in _dispatch_client_callout ()
#5  0x000000010158bdb8 in _dispatch_queue_drain ()
#6  0x00000001015842c4 in _dispatch_queue_invoke ()
#7  0x000000010158e5d4 in _dispatch_root_queue_drain ()
#8  0x0000000101590248 in _dispatch_worker_thread3 ()
#9  0x000000019745d22c in _pthread_wqthread ()
#10 0x000000019745cef0 in start_wqthread ()
Enqueued from GEOTileServerRemoteProxy (Thread 8)Queue : GEOTileServerRemoteProxy (serial)
#0  0x000000010158a0bc in _dispatch_barrier_async_f ()
#1  0x000000018e54fd08 in -[GEOTileServerRemoteProxy _handleTile:] ()
#2  0x000000018e54f9d4 in -[GEOTileServerRemoteProxy _handleEvent:fromConnection:] ()
#3  0x0000000197484ccc in _xpc_connection_call_event_handler ()
#4  0x0000000197482bd0 in _xpc_connection_mach_event ()
#5  0x0000000101581068 in _dispatch_client_callout4 ()
#6  0x0000000101584a38 in _dispatch_mach_msg_invoke ()
#7  0x000000010158c384 in _dispatch_queue_drain ()
#8  0x0000000101583eac in _dispatch_mach_invoke ()
#9  0x000000010158c384 in _dispatch_queue_drain ()
#10 0x00000001015842c4 in _dispatch_queue_invoke ()
#11 0x000000010158e5d4 in _dispatch_root_queue_drain ()
#12 0x0000000101590248 in _dispatch_worker_thread3 ()
#13 0x000000019745d22c in _pthread_wqthread ()
#14 0x000000019745cef0 in start_wqthread ()

2 个答案:

答案 0 :(得分:1)

这似乎是来自iOS中的tile loader的异常。我认为这是一个VectorKit框架问题。不要认为这是一个应用程序问题。

答案 1 :(得分:0)

您很可能正在尝试访问已解除分配的对象。

您可以尝试使用[Test] public void StructureMapResolveSingleInstance() { var registered = new Registered(); ObjectFactory.Initialize(i => i.Register(registered)); var resolver = new StructureMapDependencyResolver(ObjectFactory.Container); var resolved = (Registered) resolver.GetInstance(typeof (Registered)); Assert.That(resolved, Is.EqualTo(registered)); }

进行调试

编辑您的方案并启用它。
不要忘记禁用它,因为它不会在激活时释放任何对象。

enter image description here

enter image description here