swifter-tips / Public-Issues

Public issues for Swifter-tips book

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于 第18个 tip "Designated, Convenience" 和 Required 的疑惑

zyg-github opened this issue · comments

commented

原文:
“我们可以通过添加 required 关键字进行限制,强制子类对这个方法重写实现。这样做的最大的好处是可以保证依赖于某个 designated 初始化方法的 convenience 一直可以被使用。”

通过 required 不能保证 依赖于某个 designated 初始化方法的 convenience 一直可以被使用 除非只有一个 designated 初始化方法

要保证 convenience 一直可以被使用 需要保证 designated 的所有初始化方法 被实现(默认继承或者 手动实现都可以)

不知道对不对? 大神指点一下

我在这里的意思是把所有 designated 添加 required,可能书里说法有点不好,我看看怎么改一改。

对于 convenience,其实只需要理解它必须 call 到同一 class 的 convenience 或者 designated,而在父类中加入 required 就是为了给编译器提供约定,来保证子类继承的 convenience 最后一定可以 call 到子类中某一个 designated。

commented

恩恩 理解
谢谢 喵神的解答