首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLGeocoder().geocodeAddressString错误代码

CLGeocoder().geocodeAddressString错误代码
EN

Stack Overflow用户
提问于 2021-01-22 06:59:48
回答 1查看 99关注 0票数 0

我正在做一个项目,在这个项目中,我使用CLGeocoder来确定特定位置的地标。非常简单的调用,像这样。

代码语言:javascript
复制
CLGeocoder().geocodeAddressString(location) { (placemarks, error) in
            if let error = error {
                print(error.localizedDescription)
            }

我希望能够捕获CLError代码并做出相应的响应,而不是打印出NSError的localizedDescription。例如,如果找不到位置,我的localizedDescription将打印

代码语言:javascript
复制
The operation couldn’t be completed. (kCLErrorDomain error 8.)

我如何在Swift中确定CLError代码,这样我就不必打开一些本地化的描述,这些描述将根据用户的区域设置进行更改?这可以做到吗?我只有几个案子想换。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-22 07:15:49

您需要将错误类型转换为CLError,然后切换错误code

代码语言:javascript
复制
if let error = error as? CLError { 
    switch error.code {
    case .locationUnknown:
        print("locationUnknown: location manager was unable to obtain a location value right now.")
    case .denied:
        print("denied: user denied access to the location service.")
    case .promptDeclined:
        print("promptDeclined: user didn’t grant the requested temporary authorization.")
    case .network:
        print("network: network was unavailable or a network error occurred.")
    case .headingFailure:
        print("headingFailure: heading could not be determined.")
    case .rangingUnavailable:
        print("rangingUnavailable: ranging is disabled.")
    case .rangingFailure:
        print("rangingFailure: a general ranging error occurred.")
    default : break
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65837006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档