Я хотел бы вложить протокол в свой класс, чтобы реализовать шаблон делегата следующим образом:
class MyViewController : UIViewController {
protocol Delegate {
func eventHappened()
}
var delegate:MyViewController.Delegate?
private func myFunc() {
delegate?.eventHappened()
}
}
Но компилятор не позволит:
Протокол «Делегат» не может быть вложен в другое объявление
Я могу легко заставить его работать, объявив MyViewControllerDelegate
вне области видимости класса.
Мой вопрос: почему такое ограничение?