1. 类中定义的@public, @private, @protected只影响继承它的类的访问权限。 2. @property会为变量自动加上getter/setter方法。 3. getter方法: [size=1em][backcolor=rgb(108, 226, 108) !important][color=white !important][size=1em]?
[size=1em]1
[size=1em]2
[size=1em]3
[size=1em]4
| [size=1em][size=1em]-(id) name
[size=1em]{
[size=1em] return name;
[size=1em]}
|
4. setter方法: [size=1em][backcolor=rgb(108, 226, 108) !important][color=white !important][size=1em]?
[size=1em]1
[size=1em]2
[size=1em]3
[size=1em]4
[size=1em]5
[size=1em]6
[size=1em]7
[size=1em]8
| [size=1em][size=1em]-(void) setName:(id)_name
[size=1em]{
[size=1em] if (name != _name)
[size=1em] {
[size=1em] [name release];
[size=1em] name = [_name copy];// 设置了copy参数的情况
[size=1em] }
[size=1em]}
|
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 |