提取一个枚举关联类型的实例



我有以下内容

case noSpaces
case noCoverImage
case noSpacePhotos(for: Space)
case noName(for: Issue)
case noIssuePhotos(for: Issue)
case noIssueComment(for: Issue)
case noSpaceComment(for: Space)

当我捕获错误时,我只想获取关联类型的实例。

} catch let error as MissingElementError {
//just get instance of associated type, if any
} 

有没有一种方法,我可以做到这一点,而不写一个switch语句和所有可能的情况?

对jessie的评论进行扩展。

如果我让每个类型符合一个协议,然后使用镜像…

protocol Reflectable {
var title: String { get }
}
struct Issue: Reflectable {}
struct Space: Reflectable {}
} catch let error as MissingElementError {
if let some = Mirror(reflecting: error).children.first?.1 as? Reflectable {
}
} 

最新更新