@property 的本质
@property (nonatomic, retain) NSString *name;
@synthesize name;
这种方式的本质是:
-(NSString *) name{
return name;
}
-(void) setName:(NSStrng *) newName{
if(name!=newName){
[name release];
name=[newName retain];
}
}
对setName方法的解释:
(1)为何要加name!=newName的判断
如果要是不加,传过来的参数如果是相同的,则newName会一直retain
(2)为何[name release]
如果不release,直接name=[newName retain],则name原先所指向的内存则会泄露,因为没有释放