MapKit / Location Manager összeomlik az alkalmazás, amikor kirakodás nézet

szavazat
7

Én egy hibát, ahol a kérelmet összeomlott „EXC_BAD_ACCESS”, amikor megüt a Vissza gombot az én navigációs sáv, és a kilátás rakodni, hogy volt egy MapKit (mapView) és használta a Location Manager. Próbáltam napokig kijavítani a hibát, és végül jött egy fix, hogy bárki átjön ez a probléma:

Add ezt a kódot az dealloc

- (void)dealloc {
    mapView.delegate = nil;
    locationManager.delegate = nil;

    [mapView release];
    [locationManager release];
}
A kérdést 25/03/2010 05:08
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Volt ez is :) És igen, ez a javítás tulajdonképpen egy megfelelő fix;

- (void)dealloc {
  mapView.delegate = nil;
  locationManager.delegate = nil;

  [mapView release];
  [locationManager release];
}

Mi történik a színfalak mögött a következő:

  1. Bejön a backkey. Ez eltávolítja és ennek következtében szabadul fel a vezérlő, amely rendelkezik az mapView. Mivel már elég valószínű, csak egy utalás a vezérlő lesz dealloc'ed majd.

  2. A locationManager azonban nagyon valószínű, még hivatkozott valahol a belső működésébe geopositioning.

  3. Ha a locationManager és / vagy mapView most küld értesítést a saját megbízottja, azokat követően érvénytelen mutató. Melyik fog eredményezni EXC_BAD_ACCESS kivétel.

Igen: nilling küldöttek, hogy pont én mindig jó ötlet. Azt kívánta beállítandó Apple lenne hozzá néhány automagic ott.

Válaszolt 18/02/2012 15:04
a forrás felhasználó

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