アプリデリゲートからユーザーの緯度と経度の座標を取得するビューコントローラーがあります。これはうまく機能しますが、ユーザーの都市、州、タイムゾーンも必要です。これにはCLGeocoderを使用する必要があることはわかっていますが(コードの最後のチャンクを参照してください)、それを組み合わせる方法がわかりません。都市、州、タイムゾーンのNSStringが必要です。誰かがポインタや例を持っていますか?ありがとうございました!
App Delegateでは、CCLocationManagerを使用して次のような座標を取得します。
- (NSString *)getUserCoordinates
{
NSString *userCoordinates = [NSString stringWithFormat:@"latitude: %f longitude: %f",
locationManager.location.coordinate.latitude,
locationManager.location.coordinate.longitude];
locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
[locationManager startUpdatingLocation];
return userCoordinates;
}
- (NSString *)getUserLatitude
{
NSString *userLatitude = [NSString stringWithFormat:@"%f",
locationManager.location.coordinate.latitude];
return userLatitude;
}
- (NSString *)getUserLongitude
{
NSString *userLongitude = [NSString stringWithFormat:@"%f",
locationManager.location.coordinate.longitude];
return userLongitude;
}
私のViewControllerでは、次のようにしてユーザーの緯度と経度をNSStringとして取得します。
NSString *userLatitude =[(PDCAppDelegate *)[UIApplication sharedApplication].delegate
getUserLatitude];
NSString *userLongitude =[(PDCAppDelegate *)[UIApplication sharedApplication].delegate
getUserLongitude];
都市、州、タイムゾーンを取得したいと思います。CLGeocoderが必要なことは理解していますが、それを融合する方法がわかりません。
CLGeocoder * geoCoder = [[CLGeocoder alloc] init];
[geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks,
NSError *error) {
for (CLPlacemark * placemark in placemarks) {
NSString *locality = [placemark locality];
}
}