我有 -(CLLocationCoordinate2D) 方法,我想从该方法返回多个位置(这些位置在另一个方法中使用) 我的方法是这样的,
-(CLLocationCoordinate2D) addressLocation{
- --------
----------
return location;
}
是否可以返回多个位置(我的意思是return location1 , return location2 .. ..)??请帮我 谢谢
最佳答案
CLLocationCoordinate2D 不是一个对象,因此不能将它们添加到数组中并返回。由于它们是结构,因此有几个选项,
malloc
一个老式的数组并将结构数据复制到数组中malloc
一个新的结构指针,复制数据,然后将指针存储在一个NSValue
- 创建一个与结构的字段具有相同属性的类,并将其添加到数组
选项 1 和 2 需要额外的内存管理来确定何时释放数据,因此请避免这些。选项 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;
}
关于iphone - 如何从一个方法返回多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6538726/