如何保持对符合Swift协议的类对象的引用

问题描述 投票:0回答:1

也许我仍然以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'数组中的元素来实例化它们。

我希望我很清楚我想要完成什么。也许还有另一种方法?

ios objective-c swift factory-pattern swift-protocols
1个回答
1
投票

你可以这样做。

var registeredTypes: [(UIViewController & URLNavigation).Type]

© www.soinside.com 2019 - 2024. All rights reserved.