Swift 2, расширения протокола и отклики ToSelector
Я не уверен, мне кажется, что это какая-то ошибка или плохая реализация с расширениями протокола в Swift 2.0.
У меня есть protocolA, protocolB, расширяющий protocolA, и методы реализации в расширении protocolB.
Я согласовал экземпляр класса с тем, чтобы он соответствовал protocolB, однако при проверке responsedsToSelector для методов protocolA / B результаты ложны.
import Cocoa
import XCPlayground
protocol ProtocolA : NSObjectProtocol {
func functionA()
}
protocol ProtocolB : ProtocolA {
func functionB()
}
extension ProtocolB {
func functionA() {
print("Passed functionA")
}
func functionB() {
print("Passed functionB")
}
}
class TestClass : NSObject, ProtocolB {
override init () {
}
}
var instance:TestClass = TestClass()
instance.functionA() // Calls code OK..
if instance.respondsToSelector("functionA") {
print("Responds to functionA") // **False, never passing here**
}
if instance.respondsToSelector("functionB") {
print("Responds to functionB") // **False, never passing here**
}
Должно быть сообщено как ошибка?