我如何清除封装数据的概念?

时间:2013-12-25 07:57:03

标签: ios objective-c

我正在阅读有关使用目标C进行编程的教程。 我对封装数据的内容有了一般的了解,但其细节尚不清楚。 谁能帮我??我正在自己学习它,因此在使我的概念清晰时面临一些问题。 如果这是一个愚蠢的问题,请提前致谢和抱歉。

1 个答案:

答案 0 :(得分:3)

封装只是意味着只允许通过定义的接口访问对象的内部状态。在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