Ответ 1
Коды ошибок Core Location определены как
enum CLError : Int {
case LocationUnknown // location is currently unknown, but CL will keep trying
case Denied // Access to location or ranging has been denied by the user
// ...
}
и сравнить значение перечисления с целым числом err.code
, toRaw()
можно использовать:
if err.code == CLError.LocationUnknown.toRaw() { ...
В качестве альтернативы вы можете создать CLError
из кода ошибки и проверить, что
для возможных значений:
if let clErr = CLError.fromRaw(err.code) {
switch clErr {
case .LocationUnknown:
println("location unknown")
case .Denied:
println("denied")
default:
println("unknown Core Location error")
}
} else {
println("other error")
}
ОБНОВЛЕНИЕ: В Xcode 6.1 beta 2 методы fromRaw()
и toRaw()
были
заменяется инициализатором init?(rawValue:)
и свойством rawValue
, соответственно:
if err.code == CLError.LocationUnknown.rawValue { ... }
if let clErr = CLError(rawValue: code) { ... }