返回多個值我有 - (CLLocationCoordinate2D)的方法,我想從這個方法返回的多個位置(這些位置是用另一種方法) 我的方法是這樣的,如何從一個方法
-(CLLocationCoordinate2D) addressLocation{
- --------
----------
return location;
}
是否有可能返回多個位置(我的意思是返回位置1,返回位置2 ..)?? ??請幫助我 謝謝
返回多個值我有 - (CLLocationCoordinate2D)的方法,我想從這個方法返回的多個位置(這些位置是用另一種方法) 我的方法是這樣的,如何從一個方法
-(CLLocationCoordinate2D) addressLocation{
- --------
----------
return location;
}
是否有可能返回多個位置(我的意思是返回位置1,返回位置2 ..)?? ??請幫助我 謝謝
將您的位置對象添加到數組並返回數組。例如
-(NSArray*) addressLocation{
... // Set your locations up
NSArray *array = [NSArray arrayWithObjects:location1, location2, nil];
... // Do any additional processing and return array.
}
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;
}
+1用於指出相關的地圖工具包課程來完成此工作 – bshirley
是否有可能從CLLocationCoordinate2D方法返回數組? – sajaz
喬治說的是你需要重寫你的方法簽名,所以它返回一個數組而不是CLLocationCoordinate2D。然後在方法實現中,您應該用座標填充數組並返回它們。只有1個回報會發生,那麼該方法就完成了。您不能在同一個方法調用中做兩次或多次返回。 – Andrew
你好,非常感謝你們。我明白了:) :) – sajaz