我遇到了将NSString
(包含UITextField
输入中的位置)转换为CLLocation
的错误。
以下是处理转换的方法:
- (void)geoCodeForAddress:(NSString *)address {
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:address completionHandler:^(NSArray* placemarks, NSError* error){
dispatch_async(dispatch_get_main_queue(), ^{
CLPlacemark *placeMark = [placemarks lastObject];
if (placeMark.location != nil) {
self.actionLocation = placeMark.location;
} else {
self.actionLocation = nil;
}
if(self.event)
[self.tableView reloadData];
});
}];
}
我的问题是,此方法返回某些特定字符串的错误位置。例如,每当我尝试使用“la patache paris”作为输入时,它会返回错误城市中的位置,但是当我在地图中尝试相同的字符串时,它找到了正确的位置。
方法geocodeAddressString:completionHandler:
是来自CoreLocation
类的CLGeocoder
方法,所以我无法看到其中发生了什么。
有人会有一些线索可以找出为什么这种行为奇怪吗?
谢谢。