gpt4 book ai didi

ios - 比较枚举返回错误

转载 作者:行者123 更新时间:2023-11-29 00:48:58 25 4
gpt4 key购买 nike

我有一个枚举定义如下:

enum LocationState : Equatable {
case Idle
case RetrievingLocation
case RetrievedLocation(CLLocation)
case PermissionsDenied(String)
case LocationUnavailable(NSError)
}

我添加了equatable协议(protocol)函数如下

func == (lhs: LocationState, rhs: LocationState) -> Bool {
return lhs == rhs
}

现在我想确定一个保存枚举的变量是否等于某个枚举:

let locationAvailable = locationManager.getCurrentState() != .LocationUnavailable(_)

但是,这会产生错误 '_' can only appear in a pattern or on the left side of an assignment。

我该如何解决这个问题?

最佳答案

与具有关联值的枚举进行比较时,您需要传递一个值。

我建议将枚举的声明更改为以下内容:

enum LocationState : Equatable {
case Idle
case RetrievingLocation
case RetrievedLocation(Int)
case PermissionsDenied(String)
case LocationUnavailable(NSError?)
}

然后你用下面的方式比较:

let locationAvailable = locationManager.getCurrentState() != .LocationUnavailable(nil)

如果您想与特定错误进行比较,您需要将其作为参数传递:

let locationAvailable = locationManager.getCurrentState() != .LocationUnavailable(myError)

关于ios - 比较枚举返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38326524/

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