也许我仍在以 Objective-C 的方式思考。我想注册要在工厂模式中使用的类。这些类符合如下协议(protocol):
protocol URLNavigation: class {
static func canHandle(url: URL) -> Bool
static func instantiate(with url: URL) -> UIViewController?
var url: URL? { get set }
}
然后在我的工厂类中有类似的东西:
var registeredTypes: [UIViewController.self & URLNavigation]
但我知道上面这行是不正确的。我试图保留对将用于实例化这些类实例的类对象的引用。
我还想知道如何使用这个“registeredTypes”数组中的元素实例化它们。
我希望大家清楚我要完成的任务。也许还有另一种方法?
最佳答案
你可以这样做。
var registeredTypes: [(UIViewController & URLNavigation).Type]
.
关于ios - 如何保留对符合 Swift 协议(protocol)的类对象的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55098075/