Εντάξει, έτσι είμαι έχοντας αυτό το πρόβλημα. Αυτό που θέλω να κάνω είναι το χέρι προσθέσετε πολλά σχόλια σε ένα χάρτη. Όταν προσθέτω ένα μόνο σχόλιο, λειτουργεί άψογα. Οι σταγόνες καρφίτσα, μπορείτε να κάνετε κλικ σε αυτό για να δείτε επεξήγηση του, η ζωή είναι καλή.
Το πρόβλημα έρχεται όταν θέλω να προσθέσω περισσότερες από μία. Όταν προσθέσετε το δεύτερο, ξαφνικά ο πείρος δεν είναι χρωματισμένα σωστά (δηλαδή, ανάλογα με το μέγεθός τους θα πρέπει να είναι ένα συγκεκριμένο χρώμα, αλλά είναι τώρα τόσο η ίδια ...), και το πιο σημαντικό όταν κάνετε κλικ πάνω τους, για να δουν τους επεξήγηση, η εφαρμογή κολλάει με 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;
}
ακόμη δοκιμάσει την αφαίρεση του δεύτερου λειτουργία, αλλά δεν έκανε τίποτα.
Ευχαριστώ για τη βοήθεια! PS Θα ήθελα επίσης να προσθέσω, υπάρχει συνήθως ένα ή δύο ακίδες έξω από το 9, το οποίο λειτουργεί όταν κάνετε κλικ στο σχολιασμό ...
Αν εγώ ακόμη και να προσπαθήσουμε να το χέρι μόλις δύο σχολιασμούς με το χέρι στο πρόγραμμα (δηλαδή, αφαιρέστε το βρόχο), εξακολουθεί να αποτυγχάνει και το χρώμα δεν είναι σωστή ...













