码迷,mamicode.com
首页 > 移动开发 > 详细

iOS@synthesize 和 @property

时间:2015-05-05 12:43:40      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:synthesize   property   

1.首先讲@property, 这是iOS6以后出来的关键词. 用它声明一个属性之后, 编译器会自动给你生成setter和getter方法.

@property (nonatomic, retain) NSString *name;

setter方法如下:

-(void)setName:(NSString*)_name{  
     //首先判断是否与旧对象一致,如果不一致进行赋值。  
     //因为如果是一个对象的话,进行if内的代码会造成一个极端的情况:当此name的retain为1时,使此次的set操作让实例name提前释放,而达不到赋值目的。  
     if ( name != _name){  
          [name release];  
          name = [_name retain];  
     }  
}

getter方法如下

- (NSString *) name

{

return _name;

}

2. 而在.m中声明的@synthesize

@synthesize name = _name;

这样self.name = otherString和name = otherString都可以正常编译通过,但是前者调用了setter方法进行了一次copy,后者没有,相当于assign/weak。

iOS@synthesize 和 @property

标签:synthesize   property   

原文地址:http://blog.csdn.net/s133315202/article/details/45499199

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!