我真的认为保罗的讲座很棒..我只是有一个问题,也许有人可以回答,如果他们不介意..在讲座4,当实施新的api到CalculatorBrain类时,为什么是(id)程序在头文件中声明的属性(使其成为公共属性),为什么不在programStack属性的实现文件中声明。此外,在实现文件中声明的属性的访问器方法(基本上是私有属性,如programStack)是否公开可用?我看到他称之为self.program 在实例方法“performOperation”中进行堆栈。如果有人会提供帮助,我会非常感激。 :)
答案 0 :(得分:2)
properties declared in header and implementation file
在标题中表示它可供所有其他类使用。根据您的访问说明符(@publilc,@ protected)
,它们可以是受保护的,也可以是公共的在实施文件中,它变得对外界隐藏。 (这些是私有的,所以没有继承)
理论上:您的头文件只应公开您的类的公共接口,其他所有内容都属于实现。
另外:实现文件ivars对于子类是不可见的,如果您手动生成了需要子类化的setter和getter,这有时会有点尴尬。