Ich verwende eine benutzerdefinierte Kartenanmerkungsklasse für die Kartenansicht auf dem iPhone. Immer wenn ich meine Kartenansicht aus dem Navigationsleisten-Stapel platziere, sehe ich normalerweise einige Warnungen in der Konsole.
MapAnnotation wurde freigegeben, während Schlüsselwertbeobachter noch bei ihm registriert waren. Die Beobachtungsinformationen sind durchgesickert und können sogar versehentlich mit einem anderen Objekt verbunden werden. Legen Sie einen Haltepunkt für NSKVODeallocateBreak fest, um hier im Debugger zu stoppen. Hier ist die aktuelle Beobachtungsinfo:
Ich verwende KVO nicht in meinem Code, daher kann ich nicht verstehen, warum ich diese Warnungen erhalte
Breite und Länge haben unterschiedliche Grenzen:
Wenn Sie einen Wert außerhalb dieser Grenzen übergeben, wird die Zuordnung der benutzerdefinierten Klasse aufgehoben und Sie erhalten den Fehler, den Sie erhalten. Stellen Sie sicher, dass Sie die korrekten Werte für Breiten- und Längengrad übergeben.
Es wäre wirklich nett, wenn Apple dafür einen Begrenzungsfehler statt eines frühen Release-Fehlers übergeben würde. Das hätte mir ungefähr 5 Stunden Zeit gespart
Ich habe den gleichen Fehler bekommen wie du:
%Vor%Wie hier gezeigt, wurde es verursacht, weil ich eine MKAnnotation mit einer ungültigen Koordinate zu einer MKMapView hinzugefügt habe.
Meine Lösung bestand darin, eine Funktion zu erstellen, um zu überprüfen, ob die Koordinate gültig ist.
Ort + MKAnnotation.m
Ich habe eine Kategorie meiner Place-Klasse erstellt und
%Vor%Ort + MKAnnotation.m
%Vor%Ich füge die Anmerkung nur in meinem ViewController hinzu, wenn die Koordinate gültig ist.
%Vor%Autorele deine Annotation automatisch, bevor du sie zum MapView hinzufügst?
Wenn ja, versuchen Sie es einfach zuzuweisen, fügen Sie es der MapView hinzu und geben Sie es dann frei.
Tags und Links ios mapkit mkannotation