我已经在意图定义中将意图参数设置为
dynamic
。假设提供选项信息的服务器当前处于宕机状态。
目前尚不清楚如何向用户展示无法检索选项的事实。我们应该返回选项的完成字段还接受一个 Error
。我已经填充了一个Error
的子类,并且还为这个类实现了 LocalizedError
协议......但是当我从快捷方式应用程序遇到错误时,苹果只是呈现一个弹出消息,返回一个糟糕的未本地化的消息(但包含正确的错误名称)。
以下是我正在使用的代码:
func provideCarModelOptions(for intent: CarIntent, with completion: @escaping ([String]?, Error?) -> Void) {
if(somethingGoesWrongWithServers()){
completion([],CarError.ServerDown)
}else{
completion(ReturnListOfModels(), nil)
}
}
这就是我如何实现CarError
枚举的方式
public enum CarError:Error{
case serverDown
case generic
}
extension CarError : LocalizedError{
public var errorDescription: String? {
switch self {
case .serverDown:
return "Server is down"
case .generic:
return "SomethingGoesWrong"
}
}
}
我是否做错了什么,或者苹果没有正确处理错误?
provide...Options(for intent: ...)
方法中返回自定义错误,但是iOS只显示错误枚举的错误名称,而不是本地化描述。 - Ruslan