在Swift中建模一个抽象基类

时间:2017-06-02 22:14:06

标签: swift cocoa-touch inheritance protocols

我有一个Cocoa Touch课程BaseViewController

class BaseViewController: Named, UIViewController {
    open var name = "Emma"

    override func viewDidAppear() {
        self.doSomethingImportant(self.name)
    }
}

protocol Named {
    var name: String
}

BaseViewController背后的意图是我的应用中的所有视图控制器都是从它派生的,因为它在viewDidAppear()中使用name执行了一些重要操作。

但是,我试图以这样一种方式对其进行建模,即从BaseViewController继承而不指定name,并且不是编译时错误必须在基类中提供默认的name值。换句话说:

  • 我可以让BaseViewController require 其子类实现Named而不实现Named本身吗?
  • 如果没有,我怎样才能在Cocoa Touch和面向协议编程的范例内实现这一目标?

0 个答案:

没有答案