Problém při stěhování MKPinAnnotation na iPhone mapě

hlasů
3

Stavím aplikaci, která sleduje polohu uživatele na mapě. Mohu vložit kolík snadno, ale pokud se změní místo, aplikace ukončí.

Nastavil jsem výchozí souřadnic na 0,0 v viewdidload: metoda a přidal jsem špendlík na tomto místě. Udělal jsem to proto, že chci, aby se odstranily čep, když je poloha aktualizuje a vložte kolík opět na novém místě.

Zde je kód, který jsem napsal v - (void) locationManager: didUpdateToLocation: fromLocation: metoda.

 [mapview removeAnnotation:myannotation]; 
 CLLocationCoordinate2D currentlocation;
 currentlocation.latitude=newLocation.coordinate.latitude;
 currentlocation.longitude=newLocation.coordinate.longitude;

 myannotation=[[[CSMapAnnotation alloc]initWithCoordinate:currentlocation annotationType:CSMapAnnotationTypeStart title:@My Location] autorelease];

 [mapview addAnnotation:myannotation];  

Odtud myannotation je pin, které chci přidat, newLocation je aktualizovaná umístění a CSMapAnnotation vrátí pohled anotace.

Problém je v tom moje app havaruje pokaždé. Byl jsem schopen se dostat upozornění na konzole před shazovat. Zde je zpráva:

„Instance 0x182020 třídy CSMapAnnotation se uvolnit, zatímco pozorovatelé klíčové hodnoty jsou stále evidována u ní. Pozorování info je unikly, a může se dokonce stát chybně připojené k jiným předmětem.“

Takže, plz pomoci, pokud někdo čelí stejnému problému ...

Položena 10/08/2009 v 12:00
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
1

Pár věcí, které dávat pozor:

  • MKMapView již má showsUserLocationatribut, který sleduje polohu uživatele pro vás s pulzující modrá tečka věc. Chcete-li samostatně nastavit pin na tomto místě, můžete získat userLocationatribut z MapView.

  • Shazovat chyba by mohla být vzhledem k autoreleasehovoru. Nejjednodušší způsob, jak to napravit je, aby myannotationnemovitost s retainatributem, pak vyjměte autorelease a místo myannotationpoužití self.myannotation.

  • Není úplně jasné, co máte na mysli nastavením „default souřadnicích 0, 0“ Pokud se jedná o lat / touží pak jste uvedení čep v Greenwichi v Anglii :-) Nemáte opravdu potřebují neustále přidávat a odstraňovat poznámky. Můžete přidat je jednou pak nastavit jejich pozici podle potřeby.

Odpovězeno 10/08/2009 v 19:53
zdroj uživatelem

hlasů
0

Právě jsem zažil stejný problém, a to má něco společného se souřadnicemi anotaci. Už jsem ignoroval 0,0, ale z nějakého důvodu Uživatelé byli zadávání -180, -180 (snad ze zařízení, kde jsme couldnt určit umístění?)

tak jako tak - jakmile jsem začal ignorovat -180, -180 problém zmizel. snad to pomůže.

Odpovězeno 07/05/2011 v 01:40
zdroj uživatelem

hlasů
0

Mám na mysli, že není rád svou autorelease značku pro myannotation, když přidáte poznámky do mapy nemusí být zadržen, a pak to prostě zruší přidělení a pád, to je to, co mě napadá při pohledu na kód, který vyslán. Doufám, že to pomůže

Odpovězeno 10/08/2009 v 14:21
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more