ios - NSRangeException 崩溃无法删除 "heading"的观察者

标签 ios objective-c mkmapview mapkit

Fabric/Crashlytics 正在记录以下崩溃(到目前为止有好几起崩溃),我无法弄清楚是什么原因造成的:

Cannot remove an observer<VKMapAnnotationTrackingCameraController 0x155058110> for the key path "heading" from <MKUserLocation 0x153b60790> because it is not registered as an observer.

enter image description here

我假设这是来 self 的 MKMapView,我允许用户将 map 类型设置为 MKUserTrackingModeFollowWithHeading,但我没有在任何地方添加观察者。

这可能只是 MapKit 的一个错误吗?到目前为止,过去 30 天内发生了 32 起崩溃,这似乎很多。

最佳答案

从 OS 4.x 开始,我遇到了类似的 MapKit 崩溃。 “相似”是指它与 KVO 和观察员有关,但我不记得细节了。

问题是:我有一个实现 MKAnnotation 协议(protocol)的类。但是在这个类中,我在不使用 KVO 的情况下访问坐标属性(直接通过相应的 ivar): _坐标 = .... 代替 self.coordinate = ...

似乎 Mapkit 现在(从 OS 4 开始)依靠 KVO 通知来监视注释位置。

关于ios - NSRangeException 崩溃无法删除 "heading"的观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37976861/

相关文章:

ios - Swift 中的持久数据

ios - 从框架导入所有文件?

iphone - 文件管理器 - 找不到文件 - Objective C

ios - 内购、ID商品

ios - iOS 7 中的 MKMapView

ios - 注册按钮点击功能

iphone - 处理大数字

iOS7:日志:无法在此设备上启用 MKMapView 音高

iphone - MKMapView 在regionDidChangeAnimated 中返回错误的latitudeDelta 和longitudeDelta

ios - 使用适用于 iOS 的 FlickrKit 进行身份验证