通过self.xxx访问的方法包括:set和get方法。但是使用_只是获取了自己的实例变量,并没有包含set get方法。在ios5之后,在默认情况下编译器会帮助我们生成,首先它会去当前类中查找用户是否定义的set 、get方法,如果定义了的话,编译器就会自动跳过,然后去执行用户自定义的方法。当然使用self.xxx 的时候就是调用一个getter方法。会使得引用技术加一,但是使用“下划线”的话不会使引用技术加一。
因此使用self.xxx是更好的选择,因为这样可以兼容懒加载,同时可以避免使用下划线时候忽略了self这个指针。当使用下划线时,容易在Block中造成循环引用,并且使用下划线获取不到父类的属性,因为它只是对局部变量的访问。
总结:使用self.xxx相当于间接调用了set、get方法,而使用下划线是对变量的操作。
纯属个人笔记:摘抄至我真的真的是文艺青年