【极客班】属性和实例变量

重点掌握:
1.结构只有实例变量
2.类有下列成员:实例变量是对内的,反映内部状态,属性是对外的。属性表达的是实例状态。对于一个属性,编译器会自动生成三样东西;
1.实例变量(属性名字前面加下划线) 2.get访问器方法 3.set访问器方法。类外不能访问实例变量。访问器方法可以自定义。
3.@property 是声明属性的语法 :1. @property NSString* firstName;
上一行代码会生成firstName属性,同时默认会生成一个实例变量_firstName,以及它的存取器getter、setter方法。
4.也可以给类型定义属性,用全局静态变量。模拟出来类型属性。
5.理解使用属性和实例变量的时机。类外一律使用属性。类的实例变量是私有的只能在类内访问。访问属性推荐用self.(原因和内存管理有关)值类型的(无属性封装)用实例变量访问,能用属性就用属性。
6.以下要注意:
实例变量无内存管理的考虑。循环引用会造成内存泄漏。弱引用(weak)ARC不做内存计数。弱引用的用处,阻止循环引用。
7.注意一般不存在类型属性,但是可以使用静态全局变量+类方法,模拟类属性。比较不常用。

你可能感兴趣的:(【极客班】属性和实例变量)