【@property参数总结 Objective-C语言】

前言

目前为止,我们讲过的@property参数一共有5组:

一、atomic和nonatomic,与多线程相关的两个参数,atomic是默认值,代表生成的setter方法和getter方法是线程安全的。。。加了安全锁了,特点就是安全,但是效率低下。。。nonatomic不安全,但是效率高,这两个参数,无论在MRC还是ARC里面,都可以使用,使用建议是不管在MRC还是ARC,通通使用nonatomic

二、assign和retain,## 1、retain只能用在MRC的机制下,代表生成的setter方法,是标准的内存管理代码,release旧的,retain新的,if(_car != car)

     {
             [_car release];
             _car = [car retain];
      }
      在MRC的模式下,什么时候用retain呢,当这个属性的类型是OC对象的时候,用retain,绝大多数情况下,使用这个retain,只有在出现了循环引用的时候,1边用retain,另1边用assign。

2、assign在ARC和MRC的模式下,都可以使用assign,当属性的类型是1个非OC对象的时候,使用assign

三、readonly和readwrite,无论是MRC还是ARC都能使用,如果你希望生成只读的属性,那么你就用readonly,如果你希望生成读写的属性,那么你就用readwrite

四、setter和getter,修改生成的setter方法和getter方法的名字,无论在MRC还是在ARC下都能修改,什么情况下都不要去改setter方法的名字,只有在属性的类型是BOOL类型的时候,才去修改getter方法的名字,改成is开头,提高代码的阅读性

五、strong和weak

1、strong只能用在ARC的模式下。当属性的类型,是OC对象类型的时候,绝大多数情况下,使用strong,只有出现了循环引用的时候,1端strong,1端weak

2、weak只能用在ARC机制下,当属性的类型是OC对象的时候,并且只有出现了循环引用的时候,1端strong,1端weak

六、总结

1、从内存管理的角度,我们开发程序分为ARC和MRC两种状态,你要知道两种状态的区别是什么,唯一的区别就是,一个是手动,一个是自动。ARC是自动,MRC你可能就要手动的去管那个引用计数器了。。。

2、在ARC机制下,原来使用retain的地方,用strong,出现循环引用的时候,在MRC当中,1边retain,另1边assign,在ARC当中,1边strong,另1边weak

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...