जब दृश्य उतारने MapKit / स्थान प्रबंधक अनुप्रयोग क्रैश

वोट
7

मैं एक बग जहां अपने आवेदन दुर्घटनाग्रस्त हो गया EXC_BAD_ACCESS जब मैं अपने नेविगेशन पट्टी पर वापस कुंजी और है कि एक MapKit (MapView) था और स्थान प्रबंधक इस्तेमाल किया दृश्य उतार मारा है। दिनों के लिए कोशिश की बग को ठीक करने और अंत में है कि इस समस्या को भर आता है किसी के लिए भी एक फिक्स के साथ आया था:

अपने dealloc लिए इस कोड को जोड़ें

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

    [mapView release];
    [locationManager release];
}
25/03/2010 को 05:08
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

मैं इस एक भी था, :) और, हाँ, यह सुधार वास्तव में एक उचित ठीक है,

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

  [mapView release];
  [locationManager release];
}

क्या पर्दे के पीछे क्या होता है यह है:

  1. आप backkey मारा। यह अनलोड और परिणाम में नियंत्रक जो MapView रखती विज्ञप्ति। काफी संभावना कर दिया गया है के रूप में केवल नियंत्रक के लिए एक एकल संदर्भ यह तो dealloc'ed कर दिया जाएगा।

  2. locationManager, हालांकि, अभी भी geopositioning की अंदरूनी कामकाज में कहीं संदर्भित काफी संभावना है।

  3. locationManager और / या MapView तो अब अपने-अपने प्रतिनिधि के लिए एक सूचना भेजने के बाद, वे गलत सूचक अनुसरण कर रहे हैं। जो एक EXC_BAD_ACCESS अपवाद का परिणाम देगा।

हाँ: प्रतिनिधियों है कि स्वयं को इंगित nilling हमेशा एक अच्छा विचार है। मैं चाहती थी कि justed एप्पल वहाँ कुछ automagic जोड़ना होगा।

18/02/2012 को 15:04
का स्रोत उपयोगकर्ता

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