gpt4 book ai didi

swift - 使用错误枚举的关联值和计算属性

转载 作者:搜寻专家 更新时间:2023-11-01 05:31:50 27 4
gpt4 key购买 nike

我的错误是这样写的:

public enum ParseError: LocalizedError {
case badURL(_ urlString: String)

public var errorDescription: String? {
switch self {
case .badURL:
return String.invalidURL
}
}
}

因为我只有一种情况,所以我不关心在我的调用代码中创建多个模式:

    do {
let url = try urlString.constructURL()
UIApplication.shared.open(url)
} catch {
Alert().showError(error.errorDescription, subTitle: urlString) // trying to get the associated value here
}

我想做这样的事情:

catch let error = error as ParseError(let urlString)

但显然,这是不可能的。如何获取枚举本身的值及其在语句中的关联值?

最佳答案

我唯一能想到的方法是在错误类型中添加一个urlString属性,

extension ParseError {
var urlString: String? {
switch self {
case .badURL(let x): return x
}
}
}

然后像这样捕获错误:

do {
let url = try urlString.constructURL()
UIApplication.shared.open(url)
} catch let error as ParseError {
Alert().showError(error.errorDescription, subTitle: error.urlString)
}

关于swift - 使用错误枚举的关联值和计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57517177/

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