Если я вызываю функцию (например, funcB) из класса, имеющего расширение, в котором предложение сразу все работает как положено.
Но если я вызываю какую-то другую функцию (например, funcA) класса, и вызываемая функция использует funcB внутри, я вижу результат из оригинального funcB, а не из расширения.
Пример кода:
class Bar {
}
class Foo<T> {
func funcA() {
funcB()
}
func funcB() {
print("Parent without clause")
}
}
extension Foo where T: Bar {
func funcB() {
print("Parent + clause")
}
}
Foo<Any>().funcB()
Foo<Bar>().funcB()
print("--")
Foo<Any>().funcA()
Foo<Bar>().funcA()
Выход:
Родитель без предложения
Родитель + предложение
-
Родитель без пункта
Родитель без пункта
Я хочу вызвать другую реализацию в зависимости от родителя T и отправить T во второй класс.
Если T является дочерним элементом для Bar, используйте класс , иначе верните ноль.