属性存取、直接访问实例变量

发布时间:2017-7-9 7:12:27编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"属性存取、直接访问实例变量 ",主要涉及到属性存取、直接访问实例变量 方面的内容,对于属性存取、直接访问实例变量 感兴趣的同学可以参考一下。

属性的读取采用点语法,访问对应的set和get方法。而直接访问是直接访问的对象实例的内存。这两者有什么区别?在什么情况应该使用哪种方法呢?

一、区别

直接访问实例变量有如下几种特质。

1、不经过Objective-C的方法派发,直接访问实例变量的内存,速度快。

2、由于没调用set方法,所以绕过了属性定义时声明的“内存管理语义”,只会保留新值,释放旧值。

3、不会触发“键值观测”KVO机制。

4、无法通过给set和get打断点来进行调试。

二、使用场景

通用情况:

在类的外部,使用属性存取。

在类的内部,如果是设置实例变量,采用属性设置,如果是获取实例变量,直接获取。

特殊情况:

1、在对象初始化方法中,尽量采用直接访问,但如果是超类的实例变量,就只能用属性存取;

2、在类的内部,如果在get方法中,惰性初始化某实例变量,那只能使用属性存取。


上一篇:柏拉图拜师
下一篇:hackerrank Diameter Minimization

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款