首页 > 其他 > 详细

@property与内存管理以及可传参数

时间:2014-01-29 02:19:55      阅读:345      评论:0      收藏:0      [点我收藏+]

1.在用@property声明的时候传入retian这个参数

@property (retain)Book *book;  

//代表该成员变量会进行内存管理也就是在编译的时候会在.m文件中生成如下代码,先release旧的,再retain新的

-(void)setBook:(Book *)book{

    if(_book!=book){

        [_book release];

        _book=[book retain];

    }

}


2.assign默认就是assign表示赋值也就是setter,可以省略

@property (assign)int age;

3.readwrite/readonly,默认readwrite表示可读可写生成setget方法,也可以省略,如果是readonly就代表只提供Getter方法

@property (readwrite)int age;
4.atomic/nonatomic 默认是atomic,表示支持线程安全,会加锁,提供线程保护技术,耗费系统资源,而在IOS开发中因为内存有限,所以大多数时候我们不需要考虑线程安全问题,应该提高应用的性能。

@property (nonatomic)int age;

5.指定方法名称,常用于Bool类型,提高代码的可读性

@property (nonatomic,getter = isDelete)BOOL isDelete;//表示生成get方法的时候方法名是isDelete


注意:不能对一个基本数据类型使用retain参数,这样编译器就会报错,因为基本数据类型不支持内存管理。



@property与内存管理以及可传参数

原文:http://blog.csdn.net/cooljune/article/details/18848277

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!