Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.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
Objective c 在objective C中公开iVar是否违背了封装的目的?_Objective C_Oop - Fatal编程技术网

Objective c 在objective C中公开iVar是否违背了封装的目的?

Objective c 在objective C中公开iVar是否违背了封装的目的?,objective-c,oop,Objective C,Oop,在objective-C中公开iVar是否违背了封装的目的 @interface SampleClass{ @public int totalRecords; } 简言之,是的 直接访问IVAR意味着当读取或写入totalRecords时,SampMeClass的子类或未来版本无法实现任何类型的自定义行为 这就是为什么除了类本身的实现之外,任何地方都可以通过方法访问对象状态的原因(即使如此,也主要是通过方法) 直接访问IVAR意味着当读取或写入totalRecords时,SampMeClass

在objective-C中公开iVar是否违背了封装的目的

@interface SampleClass{
@public
int totalRecords;
}
简言之,是的

直接访问IVAR意味着当读取或写入
totalRecords
时,
SampMeClass
的子类或未来版本无法实现任何类型的自定义行为

这就是为什么除了类本身的实现之外,任何地方都可以通过方法访问对象状态的原因(即使如此,也主要是通过方法)

直接访问IVAR意味着当读取或写入
totalRecords
时,
SampMeClass
的子类或未来版本无法实现任何类型的自定义行为

这就是为什么对对象状态的访问除了在类本身的实现中之外,在任何地方都是通过方法进行的(即使这样,也主要是通过方法)