如何在iOS中验证物理地址

时间:2014-11-19 20:49:19

标签: ios mapkit cllocationmanager cllocation clgeocoder

使用此代码:

- (void)geocodeAddress:(NSString *)address state:(NSString *)state zip:(NSString *)zip completion:(ResultAndErrorHandler)completion {

    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    [geocoder geocodeAddressString:[NSString stringWithFormat:@"%@, %@, %@, United States", address, state, zip] completionHandler:^(NSArray* placemarks, NSError* error){

        if (error) {
            completion(nil, error);
            return;
        }

        CLPlacemark *placemark = [placemarks firstObject];
        completion(placemark, nil);

    }];
}

问题是它永远不会抛出错误。无论我为“地址”输入什么,它只会在邮政编码中选择一个随机位置。

例如,如果我为地址“CA”输入“x z”表示状态,输入“90210”表示拉链,则只需在此邮政编码中为地址“x z”选择最接近的匹配。

但“x z”显然是无效的地址。我怎样才能发现这不是真正的地址,而地理编码器只是猜测?

0 个答案:

没有答案