У нас есть два класса Class1 и Class2 поддерживающие протокол, который обязует иметь их функцию ну назовем ее takeInBag. У нас есть viewcontroller во методе viewdidload которого мы и вызываем эту функцию, takeInBag. Не могли бы вы подсказать, как вызвать эту функцию в не зависимости от экземпляров класса, то есть чтобы мы не знали точно, функцию какого из этих классов мы будем использовать. Возможно нужно использовать делегирование?
ООП и протоколы
haymob
#2
protocol MyProtocol: class {
func takeInBag()
}
class Class1: MyProtocol {
func takeInBag() {
print(self)
}
}
class Class2: MyProtocol {
func takeInBag() {
print(self)
}
}
class ViewController: UIViewController {
var myProtocol: MyProtocol!
override func viewDidLoad() {
super.viewDidLoad()
myProtocol = Class1()
myProtocol.takeInBag()
myProtocol = Class2()
myProtocol.takeInBag()
}
}