Je tente de charger des annotations à partir d'une classe distincte une fois que les données ont été analysées. Les données sont correctement analysées que je suis à travers le NSLog. J'envoie les données à la classe chargée de charger le MKMapView. Cette classe reçoit les données correctes.iOS MapKit Méthode didAddAnnotationViews non appelée
Voici le code pour la classe que mes données parse (ParseData.m):
AnnotationsTest *loadFriend = [[AnnotationsTest alloc] init];
[loadFriend loadOutAnnotations:friendFound];
[loadFriend loadOutAnnotationsAgain];
[loadFriend release];
La méthode appelée dans ma deuxième classe (MapViewController.m):
-(void)loadOutAnnotations:(NSMutableArray *)friendData
avec le code suivant:
CLLocationCoordinate2D workingCoordinate;
workingCoordinate.latitude = [[friendData objectAtIndex:5] floatValue];
workingCoordinate.longitude = [[friendData objectAtIndex:4] floatValue];
MapAnnotation *appleStore1 = [[MapAnnotation alloc] initWithCoordinate:workingCoordinate];
[appleStore1 setTitle:@"Title"];
[appleStore1 setSubtitle:@"subtitle"];
[appleStore1 setUserData:[friendData objectAtIndex:6]];
[appleStore1 setAnnotationType:iCodeBlogAnnotationTypeApple];
[self.mapView addAnnotation:appleStore1];
Et enfin, voici mon code pour répondre aux événements addAnotation (MapViewController.m):
- (void)mapView:(MKMapView *)mapViews didAddAnnotationViews:(NSArray *)views {
id myAnnotation = [mapViews.annotations objectAtIndex:0];
[mapViews selectAnnotation:myAnnotation animated:YES];
NSLog(@"didAddAnnotationViews is called");}
L'annotation se charge parfaitement si je coder en dur les variables, ne passent pas la NSMutableArray par la méthode, et font appel à la méthode dans la section classe MapViewController de viewDidLoad. Lorsque j'essaie d'appeler la méthode pour ajouter des annotations d'une autre classe, la méthode didAddAnnotationViews ne répond pas.
Veuillez nous aviser. Merci d'avance!!
Evan
NSMutableArray est-il éventuellement libéré avant de le transmettre à la méthode? Où construisez-vous le tableau? Et pourriez-vous s'il vous plaît expliquer en détail à nouveau ce qui fonctionne exactement quand vous codez quelles variables? Pas à pas? –
Lorsque je code en dur la fonction loadOutAnnotation avec des coordonnées et que je l'appelle depuis la section viewDidLoad de MapViewController.m, l'annotation apparaît. Si j'essaie d'appeler la fonction loadOutAnnotation de ParseData.m, elle n'apparaîtra pas. J'ai ajouté le didAddAnnotationViews pour charger l'annotation, mais pas de chance. NSMutableArray transmet simplement les coordonnées que je peux vérifier sont passées à la méthode loadOutAnnotation via le NSLog. Faites-moi savoir s'il y a plus d'informations que je peux fournir. Merci d'avoir regardé ça! –
Je pense qu'il est trop difficile de comprendre quel est le problème avec la quantité de code fournie. Peut-être que vous pouvez emballer le code et le mettre sur github ou quelque chose ou afficher toutes les méthodes impliquées ici. –