@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原先所指向的内存则会泄露,因为没有释放

转载于:https://www.cnblogs.com/jiajiayouba/archive/2012/04/23/2466508.html

你可能感兴趣的:(@property 的本质)