反应性位置 - 处理成功和失败块

时间:2018-06-15 07:05:52

标签: ios iphone swift cllocationmanager reactive-swift

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

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

此处错误为 .restricted .denied ,我希望根据错误向用户显示错误消息。如何识别它。

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

enter image description here

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我建议您详细了解Swift enum

您可以检查.restricted.denied,方法与检查.success.failure的方式相同。

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

ReactiveLocation.authorizeAction.apply(.whenInUse).startWithResult {
    switch $0 {
    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
        }

    }
}