码迷,mamicode.com
首页 > 其他好文 > 详细

OC-@property内存管理中的参数

时间:2014-12-20 02:08:14      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

 

//1.生产get与set方法的声明

//2.生成get与set方法的简单实现

/*       - (void)setCar:(Car *)car{

              _car = car;

          }

        

        - (Car *)car{

             return _car;

        }

         */

//3.若果你没有声成名相对象的成员变量,那么他会自动生成一个_开头的成员变量

 

//@property 参数分为4类

/*

1.与set方法内存管理相关参数

retain: 要生成符合内存管理原则的set方法(应用与对象类型),(只在setter中release旧值,retain新值)

         - (void)setCar:(Car *)car{

             

             if (_car != car){

             

             [_car release];//release旧值

             

             _car  = [car retain];//retain新值

         }

assign: 直接赋值,(对象类型,基本数据类型)

copy :  (后面讲解)

*/

 

//2.多线程相关

//nonatomic: 不生成多线程相关代码,使用这个就可以了(效率高一点)

//atomic:生成多线程相关代码(不写默认是这种方式)

//实际开发中,只要是对象类型的@property都写成下面

 

//3.是否要生成set与get方法

//readwrite: 可读可写属性,同时生成set与get方法

//readonly : 只读属性,只生成get方法

 

//4.set与get方法名称相关的参数

//setter:设置生成的set方法名称

//getter:设置生成的get方法名称

 

@property (nonatomic,retain) Car * car;

@property (nonatomic,retain)NSString * name;

@property (nonatomic,assign)int age; //int float double char

@property (nonatomic,assign)int weight;

@property (nonatomic,assign,readonly)int idCard;

@property (nonatomic,assign,setter = abc:,getter = zhuanghuimei)int height;

/**

 [p abc:100];

 int b = [p zhuanghuimei];

 p.height = 100;//[p abc:10];

 NSLog(@"he %d",p.height);//[p zhuanghuimei];

 //p 0

 

 */

//  改变set与get方法名称很多都是用在BOOL类型的变量

@property (nonatomic,assign,setter = isDeid:,getter = isDeid)BOOL isDeid;

//因为上面这个自动生成的是

//-(void)setIsDeid:(BOOL)isDeid;但是以前也说了,BOOL类型都是is开头,所以才用这个方法来设置is开头的,如下:

//- (void)isDeid:(BOOL)isDeid;

 

OC-@property内存管理中的参数

标签:

原文地址:http://www.cnblogs.com/wxios/p/4174982.html

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