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

魏兆辉的IOS基础学习笔记之十 OC语言基础-05 @property关键字

时间:2015-11-12 00:04:02      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

在上一篇笔记中是学习了怎样手动编写getter和setter方法,相对来说复杂一些,今天学习了@property关键字就可以自动的生成这两个方法,十分方便,

另外在内存管理中,也可以使用这个关键字,省去了重写dealloc函数的麻烦,只需要写进去关键词就可以。

让系统自动合并setter和getter只要两个步骤:

(1). 在类接口部分使用@property指令定义属性。

(2). 在类实现的部分使用synthesize指令声明该属性即可。

  所有,上面例子中定义Engine的存取方法我们可以修改成以下代码:

原来的setter方法和getter方法可以合并改成:

技术分享
1 /* 3.Car */
2 @interface Car : NSObject
3 {
4     Engine *engine;
5     Tire *tires[4]; //四个轮子,定义一个四个数的数组。
6 }
7 @property(nonatomic)Engine* engine;
8 @end // Car
技术分享

实现方法只要这样:

1 @implementation Car
2      @synthesize engine;
3 @end;

  在使用@property指令的时候,后面会带上一些参数,具体的作用这边大致介绍下。要想深入了解,可以之后自己百度之。

atomic(nonatomic):指定合成的存储方法是否为原子操作。即:主要指是否线性安全。aomic可以保证对象数据完整性,但是线程的安全性降低。nonatomic可以提高存储方法的访问性能。

copy:当调用setter方法对成员变量赋值的时候,会将被赋值的对象复制成一个副本,再将该副本赋值给成员变量。copy指令可以避免当计数器的值为0的时候,对象被清除。

readonly:指示系统只合成getter方法,不再合成setter方法。即:定义的方法只读,不能给赋值。

readwrite:是默认值,指示系统需要合成setter,getter方法。

retain:当把某个对象赋值给该属性时,该属性原来所引用的对象的引用数减1,被赋值对象的引用数加1。(ARC内存机制中用到)

retainCount:获取引用的对象的引用数

weak:指示符指定该属性对被赋值对象持有弱引用。即:即使该弱引用指向被赋值的对象,该对象也可能被回收

strong:指示符指定该属性对被赋值对象持有强引用。即:只要该抢引用指向被赋值的对象,那么该对象就不会自动回收

魏兆辉的IOS基础学习笔记之十 OC语言基础-05 @property关键字

标签:

原文地址:http://www.cnblogs.com/normalwzh/p/4957498.html

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