1

我的应用程序发生了一个奇怪的崩溃首先,我让你看一下应用程序,有一个包含许多注释的地图,并且我将这些注释的标注自定义为包含按钮和许多信息的视图,它包含一个按钮,该按钮具有转到应用程序中另一个选项卡的操作,它被称为 DisclosureButton 在哪里更新地图

DisclosureButton 的操作

我在项目中添加了一个断点异常,因此我得到了应用程序崩溃的位置,您可以在上面的第 173 行看到它正如您在上面的控制台中看到的那样,view.annotation 为空,因此注释在某些时候被删除了。检查线程 1(主线程,您可以在下面看到)执行的操作后,我看到在从地图中删除注释时,执行了显示按钮操作。为什么主线程停止执行 updateMap 方法并启动显示按钮的操作?这就是控制台首先显示的“在删除注释之前”然后是在disclosureButton 的操作中的日志而不记录“在创建注释之前”,这很奇怪,我不确定此时发生了什么??? mainThread 的 stackTrace

我不确定发生了什么,任何建议/评论/帮助将不胜感激

提前致谢,

4

2 回答 2

1

iOS 6 喜欢爆破地图中的注释,谁知道为什么。我的解决方案是只保留所属类中的注释,并处理内存。它现在可以工作,但它不会让本机 mapKit 处理它......不确定是否有新的 WWDC 视频我应该观看或添加到 MKMap 编程文档中的页面,但现在这有效。

于 2012-09-28T22:04:10.513 回答
0

我想我有同样的问题。我的后台线程正在添加/删除注释,但注释上的按钮将添加到主线程中。这也意味着主线程对注释进行枚举(出于某种原因)。我通过在主线程中添加来修复它。

问题仅存在于 iOS 6 上。

我不确定你的例外是什么,但我的例外是:

*集合 <__NSArrayM: 0x136d57c0> 在枚举时发生了变异。

0   CoreFoundation                      0x0330e02e __exceptionPreprocess + 206
1   libobjc.A.dylib                     0x02735e7e objc_exception_throw + 44
2   CoreFoundation                      0x03396cc5 __NSFastEnumerationMutationHandler + 165
3   MapKit                              0x0231748c -[MKAnnotationContainerView _updateAnnotationViewPerspective] + 399
4   MapKit                              0x02305520 -[MKMapView _updateScrollContainerView:] + 2478
5   MapKit                              0x02303e10 -[MKMapView _didChangeRegionMidstream:] + 97
6   MapKit                              0x02305d66 -[MKMapView _goToMapRegion:duration:animationType:] + 828
7   MapKit                              0x023061bd -[MKMapView _setZoomScale:centerMapPoint:duration:animationType:] + 711
8   MapKit                              0x02305a24 -[MKMapView _setZoomScale:centerCoordinate:duration:animationType:] + 121
9   MapKit                              0x02307f8f -[MKMapView _goToCenterCoordinate:zoomLevel:animationType:cancelDefaultLocationTimer:] + 950
10  MapKit                              0x023075fb -[MKMapView goToCenterCoordinate:zoomLevel:animationType:] + 81
11  MapKit                              0x023076c9 -[MKMapView goToCenterCoordinate:longLatSpan:animationType:] + 178
12  MapKit                              0x0230992a -[MKMapView goToDefaultLocation] + 415
13  Foundation                          0x009a0b90 __NSFireTimer + 97
14  CoreFoundation                      0x032cd376 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 22
15  CoreFoundation                      0x032cce06 __CFRunLoopDoTimer + 534
16  CoreFoundation                      0x032b4a82 __CFRunLoopRun + 1810
17  CoreFoundation                      0x032b3f44 CFRunLoopRunSpecific + 276
18  CoreFoundation                      0x032b3e1b CFRunLoopRunInMode + 123
19  GraphicsServices                    0x03c557e3 GSEventRunModal + 88
20  GraphicsServices                    0x03c55668 GSEventRun + 104
21  UIKit                               0x00d3465c UIApplicationMain + 1211
22  myApp                               0x00002c93 myApp + 7315
23  myApp                               0x00002bd5 myApp + 7125
于 2012-09-20T12:01:31.350 回答