【发布时间】:2016-02-21 10:39:59
【问题描述】:
假设我有一个如下所示的协议:
protocol Foo {
var bar: Bool { get set }
}
现在我有了符合 Foo 协议的视图控制器;
class FooViewController: UIViewController, Foo {
...
}
在另一个班级我想做这样的事情:
class FooClass {
var viewController: UIViewController? // this should conform to Foo protocol
func setViewController(viewController: UIViewController) {
if let fooVC = viewController as? Foo {
// viewController implements Foo protocol
self.viewController = fooVC
} else {
print("ViewController does not conform to Foo protocol")
}
}
}
在 Objective-C 中,我会有一个类似的引用:UIViewController<Foo> *vc 表示 vc 是符合 Foo 协议的 UIViewController 类的对象。有 Swift 等价物吗?
编辑:我猜是not possible :(
【问题讨论】: