Reactive Location - 处理成功和失败块

Reactive Location - Handle success and failure block

这可能是个简单的问题。 我正在使用 Reactive Location,获取用户的当前位置,请找到我下面的代码,

    ReactiveLocation.authorizeAction.apply(.whenInUse).startWithResult {
        switch [=10=] {
        case let .success(status):
            print("Current user permission status on WhenInUse is \(status)")
        case let .failure(error):                
            print(error.localizedDescription)
        }
    }

这里的错误是.restricted.denied,我希望根据错误向用户显示错误信息。如何识别它。

在上面的代码中,完成块看起来像这样,

请帮我解决问题。

我建议多了解 Swift enum

您可以像检查 .success.failure 一样检查 .restricted.denied

唯一的区别是 LocationAuthorizationError 没有关联值。

ReactiveLocation.authorizeAction.apply(.whenInUse).startWithResult {
    switch [=10=] {
    case let .success(status):
        print("Current user permission status on WhenInUse is \(status)")

    case let .failure(actionError):
        switch actionError {
        case .producerFailed(.restricted):
            print("Authorization Restricted")
        case .producerFailed(.denied):
            print("Authorization Denied")
        default:
            break
        }

    }
}