Ios 使用当前位置数据时,CLGeocoder返回城市和州的空结果
嗨,我正在尝试使用CLGeocoder获取城市和州的名称。但是,placemark.addressDictionary正在返回我: { FormattedAddressLines= 南大西洋 ; 名称=南大西洋; 海洋=南大西洋; } 而placemark是: 南大西洋,南大西洋@+/-100.00m,区域Cl循环区域标识符:“半径4958095.65”,中心:,半径:4958095.65m 此外,[placemark locality]和[placemark administrativeArea]的NSLog都显示为零 还尝试添加ABAdressBookUI、ABAdressBook框架,并将数据获取为: NSString*addressDict=ABCreateStringWithAddressDictionaryplacemark.addressDictionary,否;返回一个描述为空的对象 或尝试: NSString*state=NSString*[placemark.addressDictionary objectForKey:KabPersonalAddressStateKey];这会引发不兼容指针类型的警告 如果有任何可能的解决办法,或者如果我遗漏了什么,请让我知道 点击当前位置按钮时,我的代码如下: CLLocation*locIos 使用当前位置数据时,CLGeocoder返回城市和州的空结果,ios,objective-c,addressbook,cllocation,clgeocoder,Ios,Objective C,Addressbook,Cllocation,Clgeocoder,嗨,我正在尝试使用CLGeocoder获取城市和州的名称。但是,placemark.addressDictionary正在返回我: { FormattedAddressLines= 南大西洋 ; 名称=南大西洋; 海洋=南大西洋; } 而placemark是: 南大西洋,南大西洋@+/-100.00m,区域Cl循环区域标识符:“半径4958095.65”,中心:,半径:4958095.65m 此外,[placemark locality]和[placemark administrativeAre
loc = [[CLLocation alloc] initWithLatitude:[KLocationManager sharedManager]._locationManager.location.coordinate.latitude longitude:[KLocationManager sharedManager]._locationManager.location.coordinate.longitude];
CLGeocoder* geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:loc completionHandler:^(NSArray *placemarks, NSError *error) {
CLPlacemark* placemark = [placemarks objectAtIndex:0];
if (placemark) {
NSDictionary* dic = placemark.addressDictionary;
NSString* locName = [NSString stringWithFormat:@"%@, %@", [dic objectForKey:@"City"],[dic objectForKey:@"State"]];
CLLocation* loc = placemark.location;
self.returnLocationDict = @{@"name":locName, @"location":loc};
}
}];
我在这里遗漏了什么?复制您体验的一种方法是使用纬度和经度为0,0的CLLocation 我使用纬度:37.3318经度:-122.0312无限循环运行了您的代码。。这一切都如期而至 您的位置经理可能没有返回您期望的内容