A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

@property参数的总结


1.    开发程序分为 ARC 和 MRC:


2.    与多线程相关的2个参数:


     atomic:默认的。安全,但效率低下。
     nonatomic:不安全,效率高。


     无论在ARC还是在MRC都可以使用!
     使用建议:无论是ARC还是MRC,都使用nonatomic!


3.    retain:


     只能用在MRC的模式下,代表生成的setter方法是标准的MRC内存管理代码。
     当属性的类型是OC对象的时候,绝大多数情况下使用retain,只有在出现了循环引用的时候,1边使用retain,1边使用assign。


4.    assign(默认的):


     在ARC和MRC下都能使用assign!当属性的类型是非OC对象的时候,就使用assign!



5.    strong(默认的):



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


6.    weak:


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



7.    readwrite(默认的)     readonly:


    无论是ARC,还是MRC下,都可以使用!如果希望指针是只读的,那就用readonly。否则,就用readwrite!


8.    setter     getter:



     无论是ARC,还是MRC下,都可以使用!无论什么情况都不要改setter方法的名字,因为默认情况下生成的名字就已经是最标准的了!而getter方法的名字可以在属性的类型是BOOL类型的时候,修改为以is开头的名字,可以提高代码的阅读性



重中之重:


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




2 个回复

倒序浏览
可以借用~~
回复 使用道具 举报

欢迎欢迎{:3_64:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马