2014-11-23 52 views
1

我需要声明一个符合我所制定的自定义协议的类型为UIViewController的变量。通常情况下,我会在ObjC做到这一点:Swift中符合协议的具体类型

UIViewController<MyProtocol> *thingie; 

但是,我不知道如何实现这一目标的快捷。


我只是铸造的对象,现在,直到一些有用的东西显示出来:

let conformingObject = viewController as MyProtocol 
+0

这个对象实际上是不是'UIViewController'? – nhgrif 2014-11-23 16:27:34

+0

@nhgrif是的,我访问'UIViewController'方法以及协议方法。 – Mazyod 2014-11-23 16:30:16

+0

是否有对象符合'MyProtocol'不是'UIViewController'? – nhgrif 2014-11-23 16:30:46

回答

1

您可以通过实现使用泛型类似的东西。就像这样:

class SomeClass<T where T: UIViewController, T: MyProtocol> { 
    var thingie: T 
} 
相关问题