2014-01-09 11 views
9

私はgeocodeAddressString:completionHandler:メソッドを使用しています。このメソッドは、CLPlacemarkの配列を返します。私は緯度、経度、ニーモニック名と半径を取得する必要があります。最初の3を得ることは簡単ですが:廃止予定のCLRegionメソッド - 半径の取得方法?

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

私はplacemark.region.radiusは廃止されると、今の半径を取得する方法がわかりません。代わりに今何を使うべきか?私はドキュメンテーションで十分興味深いものは見つけられません。

+0

新しいクラスを。 https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLRegion_class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instp/CLRegion/radius – danh

+0

@danh旧地域からどのように移行すればいいですか?私はそれを開始していないのですか?キャスティングはむしろ助けにならないし、古い領域を新しいcircularRegionに変換する方法はありません。 – Vive

答えて

8

非推奨の注釈はradiusCLRegionで、代わりにCLCircularRegionを使用しています。

CLCircularRegionCLRegionのサブクラスです。
CLCircularRegionは、CLRegionが有する特性(radiusを含む)を有する。

は、radiusプロパティを使用する意図でCLRegionを作成したものです。


ここでは、SDK自体(特にgeocodeAddressStringメソッド)があり、それを気にして扱う必要があります。

iOS 7では、目印のregionプロパティのCLCircularRegionを返すことで、実際にそのメソッドを処理しています。

本質的に、プロパティ名が同一であるため、ここでは何も行う必要はありません。

このコードでは、iOS 4からのiOS 7に動作します:CLCircularRegion呼ば

NSLog(@"radius=%f", placemark.region.radius); 
+4

次に、 '((CLCircularRegion *)placemark.region radius ')を使用して、特別な警告を表示することをお勧めします。ご回答いただきありがとうございます。 – Vive

+1

残念なことに、展開ターゲットが7.0の場合、警告が表示されます。 Deployment Targetが7.0未満で、iOS 7 SDKを使用している場合、警告は表示されません。 – Anna

関連する問題