我有以下内容
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 {
}
}