Warnung in benutzerdefinierten Kartenanmerkungen iPhone

7

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

    
sandy 03.05.2011, 16:21
quelle

4 Antworten

30

Breite und Länge haben unterschiedliche Grenzen:

  • (- 90, 90) für Lat
  • (- 180, 180) für Long

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

    
KronoS 20.04.2012, 21:18
quelle
7

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%     
Sergio del Amo 29.09.2012 18:34
quelle
1

Es wurde behoben. Ich habe ein falsches Paar Breiten- und Längengrade in Anmerkungen verwendet, ich habe das Gleiche geändert und nun scheint alles perfekt zu sein und die Warnung ist ebenfalls verschwunden.

    
sandy 04.05.2011 08:41
quelle
0

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.

    
InsertWittyName 03.05.2011 19:40
quelle

Tags und Links