在项目开发中实际应用到的 在赋值和取值的时候 不懂self.xx 和 _xx的区别,使用起来貌似差不多!不过有这样的出来还是有差别
self.xx 调用了该类的setter和getter方法;
_xx 直接获取自己的实例变量。
@property (nonatomic,copy) NSString *userName;
self.userName是对属性的访问, _userName是对局部变量的访问;
所有被声明为属性的成员,iOS5之前需要使用编译器指令@synthesize来告诉编译器帮助生成属性的getter,setter方法。之后这个指令可以不用人为指定了,默认情况下编译器会帮我们生成,编译器在生成getter,setter方法时是有优先级的,它首先查找当前类中的用户是否定义了属性的getter,setter方法,如果有,则编译器会跳过,不会再生成,使用用户定义的方法。。
当一个控制器需要添加多个视图的时候就很明显了。
需求:当点击某个按钮需要添加新的视图上来的时候,就使用self.xx 因为我这里用的懒加载!!
记得有文章说过,当取值的时候使用_xx 赋值的时候使用self.xx