15-property参数

1. @property参数.
1). @property可以带参数的.
@property(参数1,参数2,参数3......)数据类型 名称;
2). 介绍一下@property的四组参数.
a. 与多线程相关的两个参数.
atomic、nonatomic.
b. 在MRC模式下修饰对象和基本数据类型的两个参数
assign、retain.

c. 在ARC模式下修饰对象和基本数据类型的三个参数
assign、Strong、weak
d. 与生成只读、读写相关的参数
readonly readwrite
e. 是与生成的getter setter方法名字相关的参数.
getter setter


2. 介绍与多线程相关的参数.
atomic: 默认值. 如果写atomic,这个时候生成的setter方法的代码就会被加上一把线程安全锁.
特点: 安全、效率低下.
nonatomic: 如果写nonatomic 这个时候生成的setter方法的代码就不会加线程安全锁.
特点: 不安全,但是效率高.
无论在ARC还是在MRC都可以使用.
建议: 要效率. 选择使用nonatomic 在没有讲解多线程的知识以前 统统使用nonatomic
3. 在MRC模式下修饰对象和基本数据类型的两个参数

assign: 修饰基本数据类型,默认值生成的setter方法的实现就是直接赋值.
无论在ARC还是在MRC都可以使用.
retain: 修饰OC对象数据类型,生成的setter方法的实现就是标准的MRC内存管理代码.
当属性的类型是OC对象的时候.绝大多数情况下使用retain. 只有在出现了循环引用
的时候1边retain 1边assign
千万注意:
retain参数.只是生成标准的setter方法为标准的MRC内存管理代码 不会自动的再dealloc中
生成relase的代码.
所以, 我们还要自己手动的在dealloc中release


4. 在ARC模式下修饰对象和基本数据类型的三个参数

assign: 修饰基本数据类型,默认值生成的setter方法的实现就是直接赋值.
无论在ARC还是在MRC都可以使用.

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


5. 与生成只读、读写的封装.
readwrite: 默认值.代表同时生成getter setter
readonly: 只会生成getter 不会生成setter
无论是ARC还是MRC 都可以使用.
6. 生成getter、setter方法名称相关的参数.

无论在ARC下还是在MRC下都可以改.
默认情况下.@property生成的getter setter方法的名字都是最标准的名字.
其实我们可以通过参数来指定@property生成的方法的名字.
getter = getter方法名字 用来指定@property生成的getter方法的名字.
setter = setter方法名字.用来指定@property生成的setter方法的名字. 注意.setter方法是带参数的
所以要加1个冒号.

记住:如果使用getter setter修改了生成的方法的名字.
在使用点语法的时候.编译器会转换为调用修改后的名字的代码.
无论什么情况都不要改setter方法的名字. 因为默认情况下生成的名字就已经是最标准的了.
什么时候修改getter方法的名字.当属性的类型是1个BOOL类型的时候.就修改这个getter的
名字以is开头 提高代码的阅读性.
7.copy拷贝

NSString和block都需要用copy修饰,它把赋值给她对象的值copy一份出来,如果修改
原始的地址对应的值,是不会改变当前被copy修饰的参数的值的

------使用参数注意-----
1. 同1组参数只能使用1个.
getter setter可以同时使用.
2. 参数的顺序可以随意.

3. 在ARC机制下,出现循环利用1边strong 1边weak

4. 代理必须用weak修饰

5. 如果同时重写getter和setter方法property是不会生成下划线属性的

6. 无论在MRC还是ARC下,如果属性的类型是NSString类型. @property参数使用copy.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值