Ios 如何明确封装数据的概念?

Ios 如何明确封装数据的概念?,ios,objective-c,Ios,Objective C,我正在读一本关于用objective C编程的教程。 我大致了解了什么是封装数据,但细节仍然不清楚。 有人能帮我吗??我正在自学,所以在明确我的概念时遇到了一些问题。 如果这是一个愚蠢的问题,请先表示感谢和抱歉。封装仅仅意味着只允许通过定义的接口访问对象的内部状态。对于Objective-C,这包括方法和属性。可以通过以下两种方式之一读取属性: [foo prop] foo.prop 它们几乎是一样的,表单稍微方便一些,特别是在链接访问者时(例如,foo.bar.baz.propvs[[foo

我正在读一本关于用objective C编程的教程。 我大致了解了什么是封装数据,但细节仍然不清楚。 有人能帮我吗??我正在自学,所以在明确我的概念时遇到了一些问题。
如果这是一个愚蠢的问题,请先表示感谢和抱歉。

封装仅仅意味着只允许通过定义的接口访问对象的内部状态。对于Objective-C,这包括方法和属性。可以通过以下两种方式之一读取属性:

[foo prop]
foo.prop
它们几乎是一样的,表单稍微方便一些,特别是在链接访问者时(例如,
foo.bar.baz.prop
vs
[[foo-bar]baz]prop]
)。设置属性时,您还有两个选项:

foo.prop = 1;
[foo setProp:1];
我所知道的唯一真正的区别是虚线形式(在这两种情况下)需要类型知识,而方法形式不需要,例如:

Foo * foo = …;
[foo setProp:1]; // OK
foo.prop = 1;    // OK

id bar = foo;
[bar setProp:1]; // OK
bar.prop = 1;    // Barf

你不清楚哪些细节?OO编程是一个大话题。封装数据是我关注的主要话题。在这个getter和setter中,点方法和访问器方法之间的区别。