Ok, så jeg har dette problemet. Hva jeg vil gjøre er å manuelt legge til flere merknader til et kart. Når jeg legger bare én merknad, det fungerer feilfritt. Pinne dråper, kan du klikke på den for å se sin callout, livet er bra.
Problemet kommer når jeg ønsker å legge til mer enn én. Når jeg legger den andre, plutselig pinnen oss ikke er farget riktig (dvs. avhengig av omfanget de bør være en viss farge, men de er nå begge det samme ...), og enda viktigere når du klikker på dem, for å se deres bildeforklaringen, krasjer app med exex_bad_access. Jeg aner ikke hva som er galt, kanskje jeg legger for mange synspunkter på kartet? Men det er bare 9 pins og pinnene selv legge helt fint. Her er min kode ...
- (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;
}
selv prøvde å fjerne den andre funksjonen, men det gjorde ikke noe.
Takk for hjelpen! PS Jeg bør også legge til, er det vanligvis en eller to pinner ut av 9 som fungerer når du klikker på kommentaren ...
Hvis jeg selv prøve å manuelt bare to merknader for hånd i programmet (dvs. fjerne loop), fortsatt ikke det, og fargen er fortsatt feil ...













