@synthesize、@dynamic 和 @property
2017-10-23 本文已影响0人
划落永恒
@synthesize 合成实例变量的规则,有以下几点:
如果指定了成员变量的名称,会生成一个指定的名称的成员变量,
如果这个成员已经存在了就不再生成了.
如果没有指定成员变量的名称会自动生成一个属性同名的成员变量。
在ARC环境无论是强指针还是弱指针都无需在 dealloc 设置为 nil , ARC 会自动帮我们处理
即便是编译器不帮我们做这些,weak也不需要在 dealloc 中置nil:
- (void)setObject:(NSObject *)object{
objc_setAssociatedObject(self,"object", object, OBJC_ASSOCIATION_ASSIGN);
[objectcyl_runAtDealloc:^{ _object =nil;
}];
}