0

我真的认为保罗的讲座很棒..我只是有一个问题,如果他们不介意的话,也许有人可以回答..在第 4 课中,在为 CalculatorBrain 类实现新 api 时,为什么在中声明 (id)program 属性头文件(使其成为公共属性),为什么不像 programStack 属性那样在实现文件中声明。此外,实现文件中声明的属性的访问器方法(本质上是像 programStack 这样的私有属性)是否公开可用?我看到他在实例方法“performOperation”中调用了self.program堆栈)。如果有人能提供帮助,我将不胜感激。:)

4

1 回答 1

2

properties declared in header and implementation file

在标头中意味着它可用于所有其他类。根据您的访问说明符(@publilc,@protected),这些是受保护的或公开的

在实现文件中,它对外界隐藏。(这些是私有的,所以不能继承)

理论上:您的头文件应该只为您的类公开公共接口,其他所有内容都属于实现。

另外:实现文件 ivars 对子类不可见,如果您手动生成需要子类化的 setter 和 getter,这有时会有点尴尬。

于 2013-01-14T12:52:37.547 回答