Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 头文件和实现文件中声明的属性有什么区别_Iphone - Fatal编程技术网

Iphone 头文件和实现文件中声明的属性有什么区别

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

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

头文件和实现文件中声明的属性

In header表示它可用于所有其他类。根据您的访问说明符(@publilc,@protected),这些是受保护的或公共的

在实现文件中,它对外部世界隐藏。(这些是私有的,因此不是继承的)

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


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

但当然,“隐藏”并不意味着无法访问。如果调用者可以虚构原型(或简单地使用动态调用),他可以访问“隐藏”属性。@HotLicks:我同意,如果你建议再添加一些,请