Iphone 头文件和实现文件中声明的属性有什么区别
我真的认为保罗的讲座很棒。。我有一个问题,如果不介意的话,也许有人可以回答。。在第4课中,当实现CalculatorBrain类的新api时,为什么在头文件中声明(id)program属性(使其成为公共属性),为什么不在实现文件中声明programStack属性。此外,在实现文件中声明的属性(基本上是私有属性,如programStack)的访问器方法是否公开?我看到他在叫self.programIphone 头文件和实现文件中声明的属性有什么区别,iphone,Iphone,我真的认为保罗的讲座很棒。。我有一个问题,如果不介意的话,也许有人可以回答。。在第4课中,当实现CalculatorBrain类的新api时,为什么在头文件中声明(id)program属性(使其成为公共属性),为什么不在实现文件中声明programStack属性。此外,在实现文件中声明的属性(基本上是私有属性,如programStack)的访问器方法是否公开?我看到他在叫self.program 实例方法“performOperation”中的堆栈。如果有人能帮忙,我将不胜感激。:) 头文件和实
实例方法“performOperation”中的堆栈。如果有人能帮忙,我将不胜感激。:)
头文件和实现文件中声明的属性
In header表示它可用于所有其他类。根据您的访问说明符(@publilc,@protected),这些是受保护的或公共的
在实现文件中,它对外部世界隐藏。(这些是私有的,因此不是继承的)
理论上说:头文件应该只公开类的公共接口,其他所有内容都属于实现
另外:实现文件IVAR对子类不可见,如果您手动生成了需要子类化的setter和getter,这有时会有点尴尬。但当然,“隐藏”并不意味着无法访问。如果调用者可以虚构原型(或简单地使用动态调用),他可以访问“隐藏”属性。@HotLicks:我同意,如果你建议再添加一些,请