Swift检查类是否具有封装协议

时间:2016-02-03 18:15:19

标签: ios swift protocols encapsulation

如何检查类是否符合封装协议?

协议:

@objc protocol Animation {
    func updateWithState (state: GKState)
}

类别:

class car : Entity, Animation {
}

某处:

 if let myVC = entity as? Animation {
    myVC.updateWithState(nextState)
 }

工作正常。

虽然....

协议:

@objc protocol Vehicle:  Animation {}

类别:

class car : Entity, Vehicle {
}

某处:

 if let myVC = entity as? Animation {
    myVC.updateWithState(nextState)
 }

不起作用,总是假,永远不会进入。

如何检查协议内的协议?

坦克!

1 个答案:

答案 0 :(得分:0)

通过操场检查它可以毫无问题地使用纯粹的Swift,所以如果它不适合你,那么可能与@objc桥接有关,请参阅下面的工作游乐场图片。

enter image description here