मैं MKMapView / एनोटेशन / UINavigationController के साथ कुछ समस्या आ रही है। मूल रूप से, मैं एक UINavigationController का उपयोग कर अपने विचार का प्रबंधन; मेरे विचार से एक एक MKMapView होता है और मैं addAnnotations पद्धति का उपयोग करके यह (200 10) पर भी टिप्पणियां जोड़ें।
सब कुछ एक बात के अलावा ठीक काम कर रहा है: अगर मैं अपने UINavigationController, iphone सिम्युलेटर दुर्घटनाओं पर नेविगेट बहुत तेजी से, एक EXC खराब पहुंच संकेत प्राप्त। उदाहरण के लिए, अगर मैं MKMapView युक्त मेरे विचार लोड और immediatly UINavigationController नेविगेशन बार से वापस बटन दबाते हैं, मैं संकेत मिलता है। मैं लगा कि समस्या addAnnotations विधि के साथ था: जब मेरे MKMapView भरी हुई है, मैं इसे में व्याख्या जोड़ने लेकिन जैसे हर चीज़ एसिंक्रोनस किया जाता है यह लग रहा है। यदि मैं वापस बटन पुश से पहले एक दूसरे की तरह प्रतीक्षा करें, मैं कोई त्रुटि मिलती है लेकिन अगर मैं बहुत तेजी से कर रहा हूँ, यह दुर्घटनाओं। मैं सब अगर मैं addAnnotations लाइन को हटाने में कोई त्रुटि मिलती है। मुझे लगता है कि क्योंकि मेरे विचार UINavigationController द्वारा जारी की है इससे पहले कि addAnnotations विधि काम किया मिल गया बस।
इस के लिए किसी भी अच्छा समाधान? मैं उपयोगकर्ता (उदाहरण के लिए एक लोड हो रहा है दृश्य दिखाते हैं) इंतजार नहीं करना चाहते हैं, मैं लगता है कि समाधान के लिए एक बेहतर स्मृति प्रबंधन हो सकता है, लेकिन मैं मैं यह कैसे कर सकता है नहीं दिख रहा।
if(DEBUG_MODE) { NSLog(@Creating array of placemarks : begin); }
self.placemarkCache = [[NSMutableArray alloc] init];
// Loading placemarks for a placemark dictionary
NSArray *sortedKeys = [[self.placemarkDictionary allKeys] sortedArrayUsingSelector:@selector(compare:)];
for (id key in sortedKeys) {
MyPlacemark *currentPlacemark = [self.placemarkDictionary objectForKey:key];
[self.placemarkCache addObject:currentPlacemark];
[currentPlacemark release];
}
if(DEBUG_MODE) { NSLog(@Creating array of placemarks : done); }
if(DEBUG_MODE) { NSLog(@Adding placemarks : begin); }
[self.mapView addAnnotations:self.placemarkCache];
if(DEBUG_MODE) { NSLog(@Adding placemarks : done); }
इस उदाहरण पर, मैं जोड़ने स्थान-चिह्न: किया मिल कुछ भी करने से पहले संदेश नक्शे पर प्रदर्शित हो।













