我的应用程序中有一个搜索栏,用户可以在其中输入地址,它会提供地理编码结果。根据以下代码,结果会随着用户键入而更新:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
...
if (self.geocoder.geocoding) [self.geocoder cancelGeocode];
[self.geocoder geocodeAddressString:searchText completionHandler:^(NSArray *placemarks, NSError *error) {
if (error != nil) {
NSLog(@"ERROR during geocode: %@", error.description);
return;
}
//update the view
}];
}
这适用于用户在搜索字段中输入的前几个字符。但是,在用户重复输入更多字符后,地理编码器开始给出以下错误(我知道这意味着网络存在问题):
ERROR during geocode: Error Domain=kCLErrorDomain Code=2 "The operation couldn’t be completed. (kCLErrorDomain error 2.)"
在重新加载整个 ViewController 之前,地理编码器不会再次工作。为什么会发生这种情况,我能做些什么来解决它?