SIGSEGV SEGV_ACCERR错误在iOS7中导致MKMapView崩溃

5
我有一个应用程序,在前台崩溃。我在根视图控制器中有一个MKMapView。这个根视图控制器在顶部显示了一个模态视图控制器。当模态视图控制器被解除显示时,调用它的viewWillAppear方法后,在根视图控制器中呈现MKMapView时会出现崩溃。这发生在iOS7中。有人知道这种崩溃的原因吗?崩溃发生在前景并且与Occasionally iOS 6 MKMapView crashes in initWithFrame不同。
堆栈跟踪:
Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0x200000a0
Crashed Thread:  13

0     IMGSGX543GLDriver                     0x2efadfd6 sgxBindCurrentTextures + 118
1     IMGSGX543GLDriver                     0x2efaf143 sgxBeginRender + 399
2     IMGSGX543GLDriver                     0x2efa75c3 glrClearCore + 235
3     IMGSGX543GLDriver                     0x2efa73e5 glrClear + 193
4     GLEngine                              0x323640c7 glClear_Exec + 395
5     VectorKit                             0x37bf1531 -[VKMapModel drawScene:withContext:] + 125
6     VectorKit                             0x37bf13f1 -[VKMapModel recursiveDrawScene:withContext:pass:] + 189
7     VectorKit                             0x37bf12d5 -[VKModelObject recursiveDrawScene:withContext:pass:] + 237
8     VectorKit                             0x37bf11e1 -[VKWorld drawScene:withContext:] + 45
9     VectorKit                             0x37bf0a0d -[VKScreenCanvas _renderCore:] + 353
10   VectorKit                              0x37befba7 __36-[VKScreenCanvas drawWithTimestamp:]_block_invoke_2 + 51
11   VectorKit                              0x37bd527f -[VGLContext perform:] + 67
12   VectorKit                              0x37befb5d __36-[VKScreenCanvas drawWithTimestamp:]_block_invoke + 113
13   libdispatch.dylib                      0x3ab36d1b _dispatch_call_block_and_release + 11
14   libdispatch.dylib                      0x3ab3d273 _dispatch_queue_drain$VARIANT$mp + 375
15   libdispatch.dylib                      0x3ab3d06b _dispatch_queue_invoke$VARIANT$mp + 43
16   libdispatch.dylib                      0x3ab3dce1 _dispatch_root_queue_drain + 77
17   libdispatch.dylib                      0x3ab3dc23 _dispatch_worker_thread + 87
18   libsystem_pthread.dylib                0x3ac7ac1d _pthread_body + 141
19   libsystem_pthread.dylib                0x3ac7ab8f _pthread_start + 103

设置异常断点,当它被触发时,点击运行几次以打印错误信息。之后发布。 - zaph
顺便说一下,我从未再现过这个崩溃 - 它只发生在现场,所以我没有更多的调试能力。 - user1044685
你是否正在执行注释分组之类的操作? - Firdous
看到类似的情况,不知道你是否找到了解决方案? - software evolved
2个回答

0

可能是MKMapView被释放了,但委托仍然试图发送消息,因此导致崩溃。尝试在呈现模态时将委托设置为nil,然后在模态被解除后将其设置回self。


0

SIGSEV通常意味着非法内存寻址(nil,已销毁的对象)或您拥有一个具有故障内存的设备。如果您正在使用自定义地图图像,则它们可能过大或者过度占用该设备的内存,导致其失败。一般来说,MapKits在旧设备上无法正确处理超过100个点。

尝试测试不同的设备。如果每个设备都失败了,那么您很可能在加载自定义图形时出现错误。

如果仅在一个设备上失败,则您很可能存在设备问题。请更换设备。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接