您的类实现中的私有属性声明?

时间:2012-02-13 02:03:37

标签: iphone ios cocoa-touch cocoa

很抱歉,如果这对你来说太明显了。我还在学习客观性和适当的设计模式。 你能解释一下为什么在类的实现文件中将@interface内的属性声明为私有属性是个好主意吗?您可以使用类型范围的本地声明,因为类外的任何人都不会为此属性使用任何getter或setter。

感谢。

2 个答案:

答案 0 :(得分:1)

通过使用属性语义,您可以获得编译器“免费”处理的内存管理行为。即使您的数据在您的类中是私有的,让编译器发出正确的释放/保留/复制也可以节省时间和错误。

使用现代ARC编译器,现在可能不是一个问题了。

答案 1 :(得分:1)

当您将某些内容声明为@private(通常是实例变量或属性)时,它只能在声明它的类的方法中访问。尝试从子类访问它会导致错误。

我知道你没有要求这个,但也有@protected,当一个属性被声明为这样时,它只能在声明它的类的方法和任何类的方法中访问继承自那个班级。

此信息的来源是我对Objective-C的最佳书籍 - 罗伯特克莱尔的Learning Objective-C 2.0