gpt4 book ai didi

swift - 从枚举 : error in swift 4. 2 中获取错误代码

转载 作者:行者123 更新时间:2023-11-28 14:07:11 26 4
gpt4 key购买 nike

我正在使用 Auth0 并且在使用生物识别技术时,他们返回错误但错误代码不正确。

他们有一个返回的函数:

return callback(.touchFailed($0!), nil)

$0 是一个 LAError 并且 .touchFailed 声明为

public enum CredentialsManagerError: Error {
case noCredentials
case noRefreshToken
case failedRefresh(Error)
case touchFailed(Error)
}

$0._code 的值为 -3

但在回调函数中,error._code 总是等于 1

如何获取 -3 的实际值?

最佳答案

问题是您查看了错误的错误对象。有两个错误对象到达,外部错误 (.touchFailed) 和包含在其中的内部错误。内部错误是您要检查的错误。但你没有检查它!

要明白我的意思,看看这个以错误的方式和正确的方式做的:

public enum CredentialsManagerError: Error {
case noCredentials
case noRefreshToken
case failedRefresh(Error)
case touchFailed(Error)
}

// let's make a `.touchFailed`
let innerError = NSError(domain: "yoho", code: -3, userInfo: nil)
let outerError = CredentialsManagerError.touchFailed(innerError)

// now let's examine them
// first, the wrong way
print(outerError._code) // 1, because it's the outer error
// now, the right way
if case let .touchFailed(what) = outerError {
print(what._code) // -3 <--!!!!
}

关于swift - 从枚举 : error in swift 4. 2 中获取错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52884054/

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