Fabric/Crashlytics 正在记录以下崩溃(到目前为止有好几起崩溃),我无法弄清楚是什么原因造成的:
Cannot remove an observer<VKMapAnnotationTrackingCameraController 0x155058110> for the key path "heading" from <MKUserLocation 0x153b60790> because it is not registered as an observer.
我假设这是来 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/