将场所String转换为CLLocation

时间:2016-01-05 09:48:57

标签: ios maps cllocation

我遇到了将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方法,所以我无法看到其中发生了什么。

有人会有一些线索可以找出为什么这种行为奇怪吗?

谢谢。

0 个答案:

没有答案