MKErrorDomain错误4 iPhone

当我运行我正在构建的gps应用程序时,我会随机获取这些信息。 它不会每次都发生,并且传入的坐标总是有效的(我记录它们)。 这些地方有文档吗?

编辑:

CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(locManager.location.coordinate.latitude, locManager.location.coordinate.longitude);
geocoder1 = [[MKReverseGeocoder alloc] initWithCoordinate:coord];
geocoder1.delegate = self;
[geocoder1 start];

然后大约一半的时间返回一个错误。 如果发生错误,我尝试释放并重新分配地理编码器,但这没有帮助。 唯一的做法是重新启动应用程序。


我一直在重复着这个错误,并且无法弄清楚如何让它停止; 但是我终于找到了一个适用于所有问题的最终解决方案,只需要做更多的工作:根本不要使用Apple的MKReverseGeocoder而是直接调用Google的反向地理编码API(这显然是相同的MKReverseGeocoder在后台执行的服务)。 您可以取回JSON或XML(您的首选项),然后您必须解析,但这并不难。

例如,因为我的应用程序使用的是ASIHTTPRequest ,所以它看起来像这样(尽管用Apple的本机API如NSURLConnection做这件事也很容易):

#pragma mark -
#pragma mark CLLocationManagerDelegate

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
           fromLocation:(CLLocation *)oldLocation
{
    // Be careful: My code is passing sensor=true, because I got the lat/long
    // from the iPhone's location services, but if you are passing in a lat/long
    // that was obtained by some other means, you must pass sensor=false.
    NSString* urlStr = [NSString stringWithFormat:
      @"http://maps.googleapis.com/maps/api/geocode/xml?latlng=%f,%f&sensor=true",
      newLocation.coordinate.latitude, newLocation.coordinate.longitude];
    NSURL* url = [NSURL URLWithString:urlStr];
    self.reverseGeocoderRequest = [ASIHTTPRequest requestWithURL:url];
    self.reverseGeocoderRequest.delegate = self;
    [self.reverseGeocoderRequest startAsynchronous];
}

顺便说一下,Google的API具有像Apple一样的规则。 确保您阅读文档,特别是关于配额。


在MapKit框架中的“MKTypes.h”中,定义了以下内容:

Map Kit框架的错误常量。

enum MKErrorCode {
   MKErrorUnknown = 1,
   MKErrorServerFailure,
   MKErrorLoadingThrottled,
   MKErrorPlacemarkNotFound,
};

...

MKErrorPlacemarkNotFound

指定的地标无法找到。

这听起来像是你在代码中引用了一些未知的地标? 或者可能是因为Google没有提供您所传递位置的名称 - 但是坐标可能是有效的。


我最近遇到并解决了这个问题。 在我的情况下,当Apple Map找不到任何查询结果时,它有时会抛出这个“MKErrorDomain = 4”错误。 所以我最终只是把它当作“未找到结果”。

发现这一点很费力,MapKit需要更好的错误处理系统。

链接地址: http://www.djcxy.com/p/18297.html

上一篇: MKErrorDomain error 4 iPhone

下一篇: Mapping Complex Types to results form SqlQuery in Entity Framework