>我有多个类继承自单个类,是否可以为它们创建字典映射?所以我可以在给定字符串键的情况下引用正确的类。
let map = [String: EngineView] = [
"google": GoogleView,
"duckduckgo": DuckDuckGoView
]
GoogleView
和DuckDuckGoView
都是EngineView
子类,但XCode抱怨:
"无法将'GoogleView.Type'类型的值转换为预期的字典值类型'EngineView'">
假设GoogleView
和DuckDuckGoView
继承自EngineView
,你可以做这样的事情:
let map = [String: EngineView.Type] = [
"google": GoogleView.self,
"duckduckgo": DuckDuckGoView.self
]
用法
if let aClass = map["google"] {
let instance = aClass.init()
}