Cómo devolver valores múltiples de un método

Tengo el método – (CLLocationCoordinate2D), quiero devolver varias ubicaciones de ese método (esas ubicaciones están utilizando en otro método) mi método tiene este aspecto,

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

¿Es posible devolver varias ubicaciones (me refiero a la location de retorno1, la location de retorno2 …)? por favor ayúdame gracias

    Agregue sus objects de location a una matriz y devuelva la matriz en su lugar. p.ej

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

    CLLocationCoordinate2D no es un object, por lo que no se puede agregar a una matriz y devolverlo. Dado que son estructuras hay algunas opciones,

    1. malloc una matriz de la manera antigua y copy los datos struct en la matriz
    2. malloc un nuevo puntero struct, copie los datos, luego guarde el puntero en un NSValue
    3. Cree una class que tenga las mismas properties que los campos de la estructura y agregue eso a una matriz

    Las opciones 1 y 2 requieren administración de memory adicional en cuanto a cuándo liberar los datos, así que evita esos. La opción 3 es buena y sucede que MapKit ofrece la class CLLocation . Aquí hay un ejemplo de 2 coorderadas.

     -(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; }