sigsegv segv_accerr在ios7中崩溃mkmapview

时间:2014-01-27 23:31:51

标签: ios objective-c ios7 mapkit

我在该字段中有一个应用程序在前台崩溃。我在根视图控制器中有一个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

2 个答案:

答案 0 :(得分:0)

SIGSEV通常意味着非法的内存寻址(零,被破坏的对象),或者你有一个内存失败的设备。如果您正在使用自定义地图图片,则它们可能太大或者压力设备的内存并导致其失败。一般来说,MapKits在旧设备上不能正确处理超过100个点。

尝试测试不同的设备。如果它在每台设备上都出现故障,那么您的代码中很可能会出现加载自定义图形的错误。

如果仅在一台设备上失败,那么您的设备很可能出现问题。替换它。

答案 1 :(得分:0)

有可能MKMapView被取消分配,但代表仍在尝试向其发送消息,因此崩溃。尝试在呈现模态时将委托设置为nil,然后在模态被解除后将其设置为自我。