如何从一个方法返回多个值
我有 – (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,
-
malloc
一个数组旧的方式,并将结构数据复制到数组中 -
malloc
一个新的结构指针,复制数据,然后将指针存储在NSValue
- 创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; }