In meiner App bekomme ich gelegentlich einen Absturz beim Navigieren weg von einer Ansicht mit einem GMSMapView
drin (popping es von meinem UINavigationController
). Es stürzt auf Gewinde 10, und hier ist der Absturz Info:Google Maps iOS SDK gelegentlich Absturz beim Zerstören von GMSMapView
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000004
Crashed Thread: 10
Und das Stack-Trace für diesen Thread:
Thread 10 name: Dispatch queue: URLConnection
Thread 10 Crashed:
0 libsystem_c.dylib 0x39ef897c OSAtomicAdd32 + 0
1 CoreData 0x31bf3de4 _PFfastQueueRelease + 24
2 CoreData 0x31bd3ee8 -[NSManagedObject release] + 224
3 CoreFoundation 0x31d2d30c CFRelease + 96
4 CoreFoundation 0x31d47e96 -[__NSDictionaryM dealloc] + 130
5 Trail Tracker GPS 0x00206076 -[GMSTileDataCache .cxx_destruct] + 162
6 libobjc.A.dylib 0x39a90f3a object_cxxDestructFromClass(objc_object*, objc_class*) + 54
7 libobjc.A.dylib 0x39a8e0ce objc_destructInstance + 30
8 libobjc.A.dylib 0x39a8e3a2 object_dispose + 10
9 Trail Tracker GPS 0x00201810 -[GMSTileDataCache dealloc] + 172
10 Trail Tracker GPS 0x0030da12 -[GMSDASHTileService .cxx_destruct] + 318
11 libobjc.A.dylib 0x39a90f3a object_cxxDestructFromClass(objc_object*, objc_class*) + 54
12 libobjc.A.dylib 0x39a8e0ce objc_destructInstance + 30
13 libobjc.A.dylib 0x39a8e3a2 object_dispose + 10
14 Trail Tracker GPS 0x00309786 -[GMSDASHTileService dealloc] + 182
15 libobjc.A.dylib 0x39a90f3a object_cxxDestructFromClass(objc_object*, objc_class*) + 54
16 libobjc.A.dylib 0x39a8e0ce objc_destructInstance + 30
17 libobjc.A.dylib 0x39a8e3a2 object_dispose + 10
18 CoreFoundation 0x31d2d30c CFRelease + 96
19 CoreFoundation 0x31d37a0e -[__NSArrayI dealloc] + 74
20 Trail Tracker GPS 0x00230e84 -[GMSDASHStreamingBody .cxx_destruct] + 40
21 libobjc.A.dylib 0x39a90f3a object_cxxDestructFromClass(objc_object*, objc_class*) + 54
22 libobjc.A.dylib 0x39a8e0ce objc_destructInstance + 30
23 libobjc.A.dylib 0x39a8e3a2 object_dispose + 10
24 CoreFoundation 0x31d2d30c CFRelease + 96
25 CFNetwork 0x31aececa CoreReadStreamFromCFReadStream::~CoreReadStreamFromCFReadStream() + 38
26 CFNetwork 0x31aece8a CoreReadStreamFromCFReadStream::~CoreReadStreamFromCFReadStream() + 6
27 CoreFoundation 0x31d2d3ce CFRelease + 290
28 CFNetwork 0x31a4f7be HTTPRequest::~HTTPRequest() + 74
29 CFNetwork 0x31a4f76a HTTPRequest::~HTTPRequest() + 6
30 CoreFoundation 0x31d2d3ce CFRelease + 290
31 CFNetwork 0x31a54992 URLRequest::~URLRequest() + 106
32 CFNetwork 0x31a5491e URLRequest::~URLRequest() + 6
33 CoreFoundation 0x31d2d3ce CFRelease + 290
34 CFNetwork 0x31a4464c __CFURLCacheNode::~__CFURLCacheNode() + 40
35 CFNetwork 0x31a429de __CFURLCacheNode::~__CFURLCacheNode() + 6
36 CFNetwork 0x31a4f57e __CFURLCache::RemoveResponseFromCacheContainers(__CFURLCacheNode*, _CFCachedURLResponse const*, __CFString const*, bool) + 158
37 CFNetwork 0x31a4d71e __CFURLCache::AddResponseIntoCacheContainers(__CFString const*, __CFURLCacheNode*, bool) + 102
38 CFNetwork 0x31a4d652 __CFURLCache::CreateAndStoreCacheNode(__CFURLCacheNode*, _CFCachedURLResponse const*, __CFString const*, _CFURLRequest const*, void const*, bool, bool&) + 186
39 CFNetwork 0x31a900c8 __CFURLCache::AddCacheTask0(__CFURLCacheNode*) + 320
40 CFNetwork 0x31a8ff78 __CFURLCache::AddCacheTask(__CFURLCacheNode*) + 28
41 CFNetwork 0x31a4d55e CFURLCacheAddCachedResponseForRequest + 622
42 CFNetwork 0x31ac7ac4 ___internalEvent_WillCacheResponse_block_invoke_0 + 28
43 CFNetwork 0x31ac91ca URLConnectionClient_Classic::_delegate_willCacheResponse(_CFCachedURLResponse const*, void()(_CFCachedURLResponse const*) block_pointer) + 42
44 CFNetwork 0x31ac7a96 URLConnectionClient::_internalEvent_WillCacheResponse() + 586
45 CFNetwork 0x31ac7b8c URLConnectionClient::_clientEvent_DidFinishLoading() + 172
46 CFNetwork 0x31acdaa8 ___withClientAsync_block_invoke_0 + 20
47 CFNetwork 0x31ac6426 ___withWorkQueueAsync_block_invoke_0 + 10
48 CFNetwork 0x31af0e34 ___performAsync_block_invoke_0 + 24
49 libdispatch.dylib 0x39ea911c _dispatch_call_block_and_release + 8
50 libdispatch.dylib 0x39ea8996 _dispatch_queue_drain$VARIANT$up + 142
51 libdispatch.dylib 0x39ea8890 _dispatch_queue_invoke$VARIANT$up + 32
52 libdispatch.dylib 0x39eb7212 _dispatch_root_queue_drain + 190
53 libdispatch.dylib 0x39eb73b4 _dispatch_worker_thread2 + 80
54 libsystem_c.dylib 0x39edda0e _pthread_wqthread + 358
55 libsystem_c.dylib 0x39edd8a0 start_wqthread + 4`
jemand wie diese Abstürze von GMSMapView
oder Google Maps SDK gesehen hat?
Können Sie uns zeigen, was Sie in diesem Thread tun, wenn es Ihr ist? Ich hatte einen ähnlichen Absturz in Code, den ich schrieb, und das Problem war das: Ich postete einen Block in die globale gleichzeitige Warteschlange; Dieser Block hat einen neuen Kontext für verwaltete Objektdaten erstellt, eine Menge Dinge erledigt und ist beendet. Der Absturz ist aufgetreten, weil einige verwaltete Objekte diesen Kontext überleben konnten, indem sie im Autorelease-Pool saßen - vermutlich habe ich einen als Ergebnis zurückgegeben. Die Lösung bestand also darin, alles zwischen dem Kontext, der gerade erstellt und explizit zerstört wurde, in einem @ autoreasepool einzubinden. – Tommy
Der Thread gehört mir nicht. Ich nehme an, dass Google Maps Kacheln abruft oder aktualisiert. –