self.name和_named的区别,本质,那个会更好
本质
self.name是对属性的访问,是调用的name属性的getter/setter方法;
_name是对局部变量的访问,等价于self->name,并不会调用getter/setter方法;
使用那种方法会更好
推荐使用_xx的理由
1.在对象内部尽量直接访问实例变量;
2.不通过OC方法派发,速度更快;
推荐使用self.xx的理由
1.他可以兼容懒加载;
2.避免了使用下划线的时候忽视了self这个指针,例如self->_xx;
3._xx更容易造成循环引用;
4.使用_xx是获取不到父类的属性,因为他只是对局部变量的访问;
5.self.xx使用存在内存管理等优势,更加安全可靠.
总结
在写入实例变量的还是,使用self.xx 方式,通过其"设置方法"来设置;而在读取实例变量的时候,则使用_xx方式.此方法既能提高读取速度,又能保证相关属性的"内存管理".



