comment returnner plusieurs valeurs d'une méthode

J'ai – (CLLocationCoordinate2D) méthode, je veux returnner plusieurs locations de cette méthode (ces locations utilisent dans une autre méthode) ma méthode ressemble à ceci,

-(CLLocationCoordinate2D) addressLocation{ - -------- ---------- return location; } 

est-il possible de renvoyer plusieurs locations (je veux dire renvoyer location1, renvoyer location2 … ..) ?? s'il vous plaît aidez-moi merci

Ajoutez vos objects de localization à un tableau et renvoyez le tableau à la place. par exemple

 -(NSArray*) addressLocation{ ... // Set your locations up NSArray *array = [NSArray arrayWithObjects:location1, location2, nil]; ... // Do any additional processing and return array. } 

CLLocationCoordinate2D n'est pas un object et ne peut donc pas être ajouté à un tableau et renvoyé. Puisqu'ils sont structs il y a quelques options,

  1. malloc un tableau à l'ancienne façon et copyr datatables struct dans le tableau
  2. malloc un nouveau pointeur struct, copyz datatables, puis stockez le pointeur dans un NSValue
  3. Créez une class qui a les mêmes propriétés que les champs de la structure et ajoutez-la à un tableau

Les options 1 et 2 nécessitent une gestion supplémentaire de la memory quant au moment de libérer datatables afin d'éviter celles-ci. L'option 3 est bonne et MapKit propose la class CLLocation . Voici un exemple de 2 coordonnées.

 -(NSArray*) addressLocations { CLLocationCoordinate2D coord1 = CLLocationCoordinate2DMake(1.00, 1.00); CLLocationCoordinate2D coord2 = CLLocationCoordinate2DMake(2.00, 2.00); CLLocation *loc1 = [[CLLocation alloc] initWithLatitude:coord1.latitude longitude:coord1.longitude]; CLLocation *loc2 = [[CLLocation alloc] initWithLatitude:coord2.latitude longitude:coord2.longitude]; NSArray *array = [NSArray arrayWithObjects:loc1, loc2, nil]; [loc1 release]; [loc2 release]; return array; }