ठीक है, तो मैं इस समस्या हो रही है। मुझे क्या करना चाहते हैं मैन्युअल रूप से एक नक्शा करने के लिए कई एनोटेशन जोड़ने है। जब मैं सिर्फ एक टिप्पणी जोड़ने के लिए, यह दोषरहित काम करता है। पिन बूँदें, आप अपनी कॉल आउट देखने के लिए उस पर क्लिक कर सकते हैं, जीवन अच्छा है।
समस्या तब आती है जब मैं एक से अधिक जोड़ना चाहते हैं। जब मैं दूसरे जोड़ने के लिए, अचानक पिन के सही ढंग से रंग के होते हैं (अर्थात उनके परिमाण के आधार वे एक निश्चित रंग का होना चाहिए, लेकिन वे अब दोनों एक ही कर रहे हैं ...), और अधिक महत्वपूर्ण है जब आप उन पर क्लिक करें, अपने को देखने के लिए कॉल आउट, एप्लिकेशन exex_bad_access साथ दुर्घटनाओं। मैं वास्तव में नहीं पता कि क्या गलत है, हो सकता है मैं नक्शा करने के लिए बहुत अधिक बार देखा जोड़ रहा है? लेकिन यह केवल 9 पिन है और पिन के लिए खुद को ठीक जोड़ें। यहाँ मेरी कोड है ...
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableArray *stops = [[NSMutableArray alloc] init]; //Get list of all the stops available
Bus *bus1 = [[Bus alloc] init]; // Bus 1 holds the stops
stops = [bus1 returnStops];
for (NSString *stop in stops) //Go through each stop to add annotation to map
{
Bus *bus2 = [bus1 initWithStop:stop]; //Create an instance of bus with a given stop
MapAnnotation *eqAnn = [MapAnnotation annotationWithBus:bus2];
[self.mapView addAnnotation:eqAnn]; //Add the annotation to the map
//[eqAnn release];
//[bus2 release];
}
[self recenterMap];
[stops release];
}
- (MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id <MKAnnotation>)annotation {
MKAnnotationView *view = nil;
if(annotation != mapView.userLocation) {
MapAnnotation *eqAnn = (MapAnnotation*)annotation;
view = [self.mapView dequeueReusableAnnotationViewWithIdentifier:@busLoc];
if(nil == view) {
view = [[[MKPinAnnotationView alloc] initWithAnnotation:eqAnn
reuseIdentifier:@busLoc] autorelease];
}
CGFloat magnituide = [eqAnn.bus.magnitude floatValue];
if(magnituide >= .80f) {
[(MKPinAnnotationView *)view setPinColor:MKPinAnnotationColorRed];
} else if(magnituide >= .60f) {
[(MKPinAnnotationView *)view setPinColor:MKPinAnnotationColorPurple];
} else
{
[(MKPinAnnotationView *)view setPinColor:MKPinAnnotationColorGreen];
}
[(MKPinAnnotationView *)view setAnimatesDrop:YES];
[view setCanShowCallout:YES];
}
return view;
}
यहां तक कि दूसरे समारोह को दूर करने की कोशिश की है, लेकिन यह कुछ भी नहीं किया।
सहायता के लिए धन्यवाद! पुनश्च मैं भी जोड़ना चाहिए, वहां आमतौर पर है 9 जो जब आप एनोटेशन क्लिक करें काम करता है में से एक या दो पिनों ...
मैं भी मैन्युअल रूप से सिर्फ दो कार्यक्रम में हाथ से एनोटेशन का प्रयास करते हैं (यानी, पाश निकालने के लिए), यह अभी भी विफल रहता है और रंग अभी भी गलत है ...













