1. 类中定义的@public, @private, @protected只影响继承它的类的访问权限。
2. @property会为变量自动加上getter/setter方法。
3. getter方法:
1 -(id) name
2 {
3 return name;
4 }
4. setter方法:
1 -(void) setName:(id)_name
2 {
3 if (name != _name)
4 {
5 [name release];
6 name = [_name copy];// 设置了copy参数的情况
7 }
8 }
5. @property的copy, retain, assign参数
影响setter函数:
copy: name = [_name copy]; // NSString推荐使用
retain: name = [_name retain]; // 其他object类型推荐使用
assign: name = _name; // delegate, 基本数据类型(int)推荐使用
6. @property的readonly参数
仅生成getter函数
7. @property的atomic, nonatomic参数
atomic一定程度上保证了getter和setter的线程安全,但不能完全依赖。
nonatomic不保证线程安全,速度快。大多数情况用nonatomic
8. @property的默认参数:
atomic, assign, readwrite