不推荐使用的CLRegion方法 - 如何获得半径?

Viv*_*ive 9 objective-c core-location ios clregion

我正在使用该geocodeAddressString:completionHandler:方法,该方法返回CLPlacemarks数组.我必须获得纬度,经度,助记名称和半径.虽然获得前3个很容易:

double lat = placemark.location.coordinate.latitude;
double lng = placemark.location.coordinate.longitude;
NSString *name = [NSString stringWithFormat:@"%@", ABCreateStringWithAddressDictionary(placemark.addressDictionary, NO)]
Run Code Online (Sandbox Code Playgroud)

我现在不知道如何获得半径,因为placemark.region.radius已弃用.任何想法现在使用什么?我在文档中找不到任何有趣的东西.

小智 9

弃用说明适用radius于in CLRegion,它表示要使用CLCircularRegion.

注意,它CLCircularRegion是的子类CLRegion.
CLCircularRegion具有与CLRegion(包括radius)相同的属性.

如果是创建CLRegion意图使用其radius财产的人,那么这很重要.


但是,在这里,SDK本身(特别是geocodeAddressString方法)必须担心并处理它.

在iOS 7中,该方法确实通过返回CLCircularRegion地标的region属性来处理它.

基本上,您不必在此处执行或更改任何内容,因为属性名称相同.

此代码适用于iOS 4到iOS 7:

NSLog(@"radius=%f", placemark.region.radius);
Run Code Online (Sandbox Code Playgroud)

  • 然后我建议使用:`[(CLCircularRegion*)placemark.region radius]`以提供额外的警告.谢谢你的回复. (5认同)