@synthesize 和 @property

1.@synthesize是objective-c 2.0的新特性,它的作用就是自动为你定义的成员变量生成get和set方法。
比如你定义了bear属性,
CCSprite *_bear;
你需要同时定义
@property (nonatomic, retain) CCSprite *bear;
和@synthesize bear = _bear;
这样,编译器才能为你生成get和set方法。
本例中就会为你生成下列两个方法:
-(CCSprite*) getBear{
return _bear;
}
-(void) setBear:(CCSprite*)bear{
if(_bear != bear){
[_bear release];
_bear = [bear retain]; //这里会是retain 跟你在@property(nonatomic,retain)中申明了retain有关。
}
}
为什么会是bear = _bear呢?
这是固定用法。如果你的成员变量的名字也是bear,那么就不要这个等于号。直接可以写成@synthesize bear;这也是你看到的比较多的写法。
如果你实在要深究property,可以参考官方文档。
相信这样解释你应该能够明白了。

posted @ 2012-02-21 16:31  aflylove  阅读(204)  评论(0编辑  收藏  举报