Это, вероятно, просто глупая ошибка, но у меня есть проблема с моим enum, в которой я полностью застрял.
У меня есть следующий код:
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
(как .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