iOS中self.和下划线的区别
来源:互联网 发布:轴承故障数据集 编辑:程序博客网 时间:2024/05/16 04:43
http://cnbin.github.io/blog/2015/12/07/ioszhong-self-dot-he-xia-hua-xian-de-qu-bie/
首先通过
self.xxx
通过访问的方法的引用:包含了set和get方法。而通过下划线是获取自己的实例变量,不包含set和get的方法。self.xxx
是对属性的访问;而_xxx
是对局部变量的访问。所有被声明为属性的成员,再ios5之前需要使用编译指令@synthesize 来告诉编译器帮助生成属性的getter和setter方法,之后这个指令可以不用认为的指定了,默认情况下编译器会帮助我们生成。编译器在生成getter,setter方法时是有优先级的,他首先查找当前的类中用户是否定义属性的getter,setter方法,如果有,则编译器会跳过,不会再生成,使用用户定义的方法。也就是说你在使用self.xxx
时是调用一个getter方法。会使引用计数加一,而_xxx
不会使用引用技术加一的。
所有使用self.xxx
是更好的选择,因为这样可以兼容懒加载,同时也避免了使用下滑线的时候忽略了self这个指针,后者容易在BLock中造成循环引用。同时,使用 _
是获取不到父类的属性,因为它只是对局部变量的访问。
最后总结:self方法实际上是用了get和set方法间接调用,下划线方法是直接对变量操作。
0 0
- iOS中self.和下划线的区别
- iOS中self.和下划线的区别
- iOS中self.和下划线的区别
- iOS中self和下划线的区别
- iOS中self.xxx 和 _xxx 下划线的区别
- iOS中self.xxx 和 _xxx 下划线的区别
- iOS中self.xxx 和 _xxx 下划线的区别
- iOS中_(下划线)和self.的区别
- ios self.和下划线的区别
- self.和下划线的区别
- ios下划线和self中的区别
- self.和_的区别(self和下划线的区别)
- OC 中self. 与 下划线的区别
- OC 中self. 与 下划线的区别
- OC 中self. 与 下划线的区别
- self和下划线的用法区别
- self和下划线的用法区别
- self和下划线的用法区别
- 工作有感-关于优化
- MYSQL explain详解
- Hive介绍及部署最详细文档
- 如何使用Fiddler调试线上JS代码 - Rock_Choke
- 国内各地图坐标系统比较
- iOS中self.和下划线的区别
- 【Android】 Activity生命周期详解
- [Asp.Net MVC4]验证用户登录实现
- iOS 静变量static、全局变量extern、局部变量、实例变量
- 如何写cmake使其包含c++11特性 (-std=c++11如何写进cmakeList.txt)
- Genymotion报错"virtualbox cannot start the virtual device" 解决记录
- JdbcTemplate模板配置及使用
- Linux的小技巧
- android adb常用指令