gpt4 book ai didi

ios - Swift enum CLAuthorizationStatus 是 CLAuthorizationStatus 而不是其中一种情况

转载 作者:行者123 更新时间:2023-11-28 13:27:52 28 4
gpt4 key购买 nike

这可能只是一个愚蠢的错误,但我的枚举有一个问题,我完全陷入了困境。

我有以下代码:

func locationManager(_ manager: CLLocationManager,
didChangeAuthorization status: CLAuthorizationStatus) {

if (status == .authorizedWhenInUse) {
print("-- authorized when in use")
locationManager.startUpdatingLocation()
} else {
print("--- \(String(reflecting: status))")
}
print("--- didChangeAuthorizationStatus = \(status)")

}

但是我在其中的调试打印语句打印了以下内容:

--- __C.CLAuthorizationStatus
--- didChangeAuthorizationStatus = CLAuthorizationStatus

为什么参数status,在我看来应该是属于枚举CLAuthorizationStatus的case(比如.accepted) print CLAuthorizationStatus? 这对我来说毫无意义,我怀疑是一些初学者的错误,但我找不到它......

在我看来,此代码的行为应类似于以下代码:

enum TestEnum {
case a
case b
}

var c = TestEnum.a

func test(name e: TestEnum) {

if e == .a {
print("case a")
} else {
print("other case")
}
print(String(reflecting: e))
}

test(name: c)

如预期的那样打印

case a
__lldb_expr_16.TestEnum.a

最佳答案

这不是你的错,而是 Swift 当前对导入 枚举的限制。

您可能需要使用 rawValues:

print(status.rawValue)

例如,3 means CLAuthorizationStatus.authorizedAlways ,但据我所知,没有简单的方法来获取值的符号表示。

关于ios - Swift enum CLAuthorizationStatus 是 CLAuthorizationStatus 而不是其中一种情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58051226/

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