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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 安若曦 中级黑马   /  2015-9-14 17:45  /  810 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这是我整理的@property参数的一些用法什么的,方便自己记忆和学习,分享给大家
  1. @property参数

  2. /*

  3. @property 4.4之前

  4. 1)@property + 手动实现

  5. 2)@property int age; + @synthesize age;//get和set方法的声明和实现都帮我们做了

  6. 3)@property int age; +@synthesize age = _b;



  7. @property 4.4之后(增强)

  8. .h

  9. @property int age;

  10. 1)生成_age(是私有的实例变量)

  11. 2)生成_age的set和get方法的声明

  12. 3)实现_age的set和get方法



  13. @property参数

  14.   三类  7个



  15. 原子性         atomic        nonatomic

  16. 读写           readwrite     readonly

  17. set方法处理     assign        retain       copy



  18. 1)多线程管理(苹果在一定程度上屏蔽了多线程操作)

  19.    

  20.     nonatomic:高性能,一般使用这个

  21.     atomic:低性能,默认



  22. 2)是否要生成set方法(若为只读属性,则不生成)



  23.     readonly:只读,只会生成getter的声明和实现

  24.     readwrite:默认的,同时生成setter 和 getter的声明和实现



  25. 3)set 和 get 方法名称

  26.      1> assign  直接赋值

  27.          //什么时候使用assign?

  28.           //实例变量是基本数据类型的时候

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

  30.             _car = car;

  31. }

  32. 验证:assign



  33.     2> retain  release旧值  retain新值(适用于OC对象类型)

  34.      //什么时候使用retain ?  在一个类中有关联其他对象的时候,这个对   象的就需要retain

  35. //格式:@property (nonatomic,retain)

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

  37.        if(_car != car){

  38.          [_car release];

  39.          -car = [car retain];

  40. }

  41. }

  42.    

  43.    3>  修改set和get方法的名称,主要用于BOOL类型。因为返回布尔类型的方法名一般以is开头,修改名称一般用在布尔类型中的gette

  44.     @property (nonatomic,assign,setter = isVip:,getter = isVip)BOOL vip;



  45.     相当于把 [p setVip: ]----->[p isVip: ]

  46.          把 [p vip]---------->[p isVip]



  47. */
复制代码


评分

参与人数 2黑马币 +15 收起 理由
崔石炫 + 10 很给力!
bdw9005 + 5 很给力!

查看全部评分

1 个回复

倒序浏览
mark一下..
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马