标签: objective-c oop
在目标C中公开iVar是否会破坏封装的目的?
@interface SampleClass{ @public int totalRecords; }
答案 0 :(得分:4)
简而言之,是的。
直接访问ivars意味着当SampmleClass被读取或写入时,totalRecords的子类或未来版本无法实现任何类型的自定义行为。
SampmleClass
totalRecords
这就是为什么访问对象状态是通过各种方法,但是在类本身的实现中(并且,即使这样,它主要通过方法)。