iOS开发-基础:Object-C 中self. 与 下划线的区别
来源:互联网 发布:六轴机器人怎么编程 编辑:程序博客网 时间:2024/05/28 15:43
@property (nonatomic,copy) NSString *propertyName;self.propertyName是对属性的访问;使用_propertyName是对局部变量的访问。
所有被声明为属性的成员,在iOS5 之前需要使用编译器指令@synthesize 来告诉编译器帮助生成属性的getter,setter方法。之后这个指令可以不用人为指定了,默认情况下编译器会帮我们生成。 编译器在生成getter,setter方法时是有优先级的,它首先查找当前的类中用户是否已定义属性的getter,setter方法,如果有,则编译器会跳过,不会再生成,使用用户定义的方法。 也就是说你在使用self.propertyName 时是在调用一个getter方法。self.propertyName 会让计数器+1;_propertyName却不会。
_propertyName是类似于self->_propertyName。
用self.propertyName 是更好的选择,因为这样可以兼容懒加载,同时也避免了使用下划线的时候忽视了self这个指针,后者容易在block中造成循环引用。
0 0
- iOS开发-基础:Object-C 中self. 与 下划线的区别
- ios-基础用法之【6】-self. 与 下划线的区别
- iOS中self.和下划线的区别
- iOS中self.和下划线的区别
- iOS中self.和下划线的区别
- iOS中self和下划线的区别
- OC 中self. 与 下划线的区别
- OC 中self. 与 下划线的区别
- OC 中self. 与 下划线的区别
- self与下划线的区别
- iOS中self.xxx 和 _xxx 下划线的区别
- iOS中self.xxx 和 _xxx 下划线的区别
- iOS中self.xxx 和 _xxx 下划线的区别
- iOS中_(下划线)和self.的区别
- ios self.和下划线的区别
- iOS开发中类方法与self方法的区别
- IOS开发基础Object-C(05)—OC变量的作用域、self
- object-c里self与super的区别
- 模拟微信发送文件给好友/群
- centOS上安装redis
- ocp-259
- javascript之数组操作
- linux openssh源码安装
- iOS开发-基础:Object-C 中self. 与 下划线的区别
- ocp-260
- 二叉树搜索树遍历--前序、中序、后序、深度优先、广度优先遍历的简单实现
- 如何通过java反编译工具嵌入myeclipse来跟进查看源码
- Java防止SQL注入的几个途径
- dpkg依赖问题
- ios开发系列之NSRange
- delphi TcpClient和TClientSocket
- 2015 最新版app审核标准