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