görünümü boşaltırken MapKit / Yer Yöneticisi uygulamasını çöküyor

oy
7

Benim gezinme çubuğunda arka anahtarı ve MapKit (MapView) vardı ve Yer Yöneticisi kullanılan yüksüz görünümü vurduğunda başvurum EXC_BAD_ACCESS çöktü bir hata var. hatayı düzeltmek için günlerce çalıştı ve nihayet bu sorunun karşısına çıkıyor herkes için bir düzeltme ile geldi:

senin dealloc bu kodu ekleyin

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

    [mapView release];
    [locationManager release];
}
Oluştur 25/03/2010 saat 05:08
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

Ben evet, bu düzeltme aslında uygun bir düzeltmedir, bunu da vardı :) Ve;

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

  [mapView release];
  [locationManager release];
}

Ne perde arkasında neler şudur:

  1. Sen backkey çarptı. Bu kaldırır ve sonuç olarak MapView tutan denetleyicisi serbest bırakır. denetleyiciye sadece tek referans oldukça muhtemel olmuştur gibi bundan sonra dealloc'ed edilecektir.

  2. locationManager Ancak yine de geopositioning işleyişinin bir yerde başvurulan oldukça muhtemeldir.

  3. locationManager ve / veya MapView Eğer şimdi, onlar geçersiz pointer takip ediyor, kendi temsilci bir bildirim gönderir. Ki bu EXC_BAD_ACCESS istisna sonuçlanacaktır.

Evet: Kendine işaret delegelere nilling her zaman iyi bir fikirdir. Apple bazı Automagic eklersiniz diledi justed.

Cevap 18/02/2012 saat 15:04
kaynak kullanıcı

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