gpt4 book ai didi

ios - CLGeocoder reverseGeocodeLocation 在没有互联网连接可用时的结果

转载 作者:行者123 更新时间:2023-11-29 13:18:13 26 4
gpt4 key购买 nike

如果网络不可用,我在尝试对位置进行反向地理编码时看到奇怪的结果:

  • 在 iOS 5.0.1 上看到
  • 开启飞行模式

    [geocoder reverseGeocodeLocation:whatever completionHandler:^(NSArray *placemarks, NSError *error) {
    if (error)
    {
    // Alert(@"No Internet connection")!;

    // I should get a kCLErrorNetwork, but I get a kCLErrorGeocodeFoundPartialResult
    // with a placemark array containing a CLPlacemark *
    // with only a latitude and longitude (the ones I entered)...
    }
    else
    {
    // ...
    }

这没有记录;至少我找不到它。

这本身并不是什么大问题,因为我不能指望它在没有网络的情况下正确地对地址进行反向地理编码,但它会阻止我向用户显示信息性消息。

最佳答案

这是 iOS 5.0.x 的行为。在 5.1 及更高版本中,它会像您预期的那样变成 kCLErrorNetwork。如果您使用 https://stackoverflow.com/a/5337804/1271826 中的宏理论上你可以这样做:

[geocoder reverseGeocodeLocation:whatever completionHandler:^(NSArray *placemarks, NSError *error) {

if (error)
{
if (error.code == kCLErrorNetwork || (error.code == kCLErrorGeocodeFoundPartialResult && SYSTEM_VERSION_LESS_THAN(@"5.1")))
{
Alert(@"No Internet connection!");
}
}
else
{
// ...
}
}];

这样一来,无论用户运行的是哪个 iOS 版本,您都可以处理网络错误(尽管显然只有 5.0 及更高版本,因为在 iOS 5.0 中引入了 CLGeocoder)。

关于ios - CLGeocoder reverseGeocodeLocation 在没有互联网连接可用时的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15091980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com