如何从一个方法返回多个值

我有 – (CLLocationCoordinate2D)方法,我想从该方法返回多个位置(这些位置正在使用另一种方法)我的方法看起来像这样,

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

是否有可能返回多个位置(我的意思是返回 location1, 返回 location2 ..)?? 请帮助我谢谢

将你的位置对象添加到数组,然后返回数组。 例如

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

CLLocationCoordinate2D不是一个对象,所以它们不能被添加到数组中并返回。 既然他们是结构有几个select,

  1. malloc一个数组旧的方式,并将结构数据复制到数组中
  2. malloc一个新的结构指针,复制数据,然后将指针存储在NSValue
  3. 创build一个与结构的字段具有相同属性的类,并将其添加到数组中

选项1和2需要额外的内存pipe理,以便何时释放数据,以避免这些。 选项3是好的,而MapKit提供了类CLLocation 。 这是2个坐标的例子。

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