iOS在类内部怎么访问实例变量比较好?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS在类内部怎么访问实例变量比较好?相关的知识,希望对你有一定的参考价值。

OC在类文件的内部访问实例变量,有直接访问和使用getter/setter方法访问两种方式,它们的区别有:

1、直接访问不经过OC的方法分发(method dispatch),所以访问速度比较快,在这种情况下,编译器所生成的代码会直接访问保存对象实例变量的那块内存。

2、直接访问实例变量时,不会调用setter方法,这样就绕过了为相关属性所定义的内存管理语义。例如在ARC下面直接访问一个声明为copy的属性,就不会拷贝该属性,只会保留新值释放旧值。

3、如果直接访问实例变量,不会触发键值观察(key-value observing)通知。

4、通过属性的getter/setter访问可以通过设置断点帮助调试错误。

综上所述,推荐在写入实例变量时使用setter,在读取时使用直接访问的方式。

当然,如果属性使用了lazy initialization,那就需要通过getter/setter来访问了。

以上是关于iOS在类内部怎么访问实例变量比较好?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 开发:成员变量(属性,实例变量)的相关知识

PHP面向对象编程

php部分---面向对象(待续);

19PHP 面向对象

面向对象中的定义

php面向对象常见的专业术语