Fabric / Crashlytics zaznamenáva nasledujúci zlyhanie (dosť málo pádov) a nemôžem zistiť, čo to spôsobuje:
Cannot remove an observer<VKMapAnnotationTrackingCameraController 0x155058110> for the key path "heading" from <MKUserLocation 0x153b60790> because it is not registered as an observer.
Predpokladám, že to pochádza z môjho MKMapView
kde dovoľujem používateľovi nastaviť typ mapy na MKUserTrackingModeFollowWithHeading
, ale nikde nepridávam pozorovateľa.
Mohla by to byť len chyba MapKit? Zatiaľ bolo za posledných 30 dní 32 zlyhaní, čo sa zdá byť veľa.
odpovede:
0 pre odpoveď č. 1Mal som podobnú haváriu s MapKit začínajúc v OS 4.x. Pod pojmom "podobné" myslím, že to súviselo s KVO a pozorovateľmi, ale nepamätám si detaily.
Problém bol: Mal som triedu implementujúcu protokol MKAnnotation. Ale v tejto triede som pristupoval ku vlastnosti súradníc bez použitia KVO (priamo cez zodpovedajúci ivar): _coordinate = .... namiesto self.coordinate = ...
Zdá sa, že Mapkit teraz (začínajúci v OS 4) spolieha na oznámenie KVO na monitorovanie pozície anotácií.