也许我还在以一种Objective-C的方式思考。我想注册要在工厂模式中使用的类。这些类符合协议,例如:
protocol URLNavigation: class {
static func canHandle(url: URL) -> Bool
static func instantiate(with url: URL) -> UIViewController?
var url: URL? { get set }
}
,然后在我的Factory类中输入以下内容:
var registeredTypes: [UIViewController.self & URLNavigation]
但是我知道上面的行是不正确的。我正在尝试保留对将用于实例化这些类的实例的类对象的引用。
我也想知道如何使用此'registeredTypes'数组中的元素来实例化它们。
我希望很清楚我要完成的工作。也许还有另一种方法?
答案 0 :(得分:1)
您可以这样做。
var registeredTypes: [(UIViewController & URLNavigation).Type]
。