很抱歉,如果这对你来说太明显了。我还在学习客观性和适当的设计模式。
你能解释一下为什么在类的实现文件中将@interface
内的属性声明为私有属性是个好主意吗?您可以使用类型范围的本地声明,因为类外的任何人都不会为此属性使用任何getter或setter。
感谢。
答案 0 :(得分:1)
通过使用属性语义,您可以获得编译器“免费”处理的内存管理行为。即使您的数据在您的类中是私有的,让编译器发出正确的释放/保留/复制也可以节省时间和错误。
使用现代ARC编译器,现在可能不是一个问题了。
答案 1 :(得分:1)
当您将某些内容声明为@private
(通常是实例变量或属性)时,它只能在声明它的类的方法中访问。尝试从子类访问它会导致错误。
我知道你没有要求这个,但也有@protected
,当一个属性被声明为这样时,它只能在声明它的类的方法和任何类的方法中访问继承自那个班级。
此信息的来源是我对Objective-C的最佳书籍 - 罗伯特克莱尔的Learning Objective-C 2.0。