Objective C @property 参数

从今天起,开始把iOS中的东西一一总结:

nonatomic
系统默认 是 atomic的 效果是,线程安全,在多线程操作的时候假如多个线程都会用到这个变量,那么你在读写这个变量的时候 会有一个 lock 和unlock的操作 防止在读写的过程中,变量被其他的线程所改变,导致错误.在java里,不这么玩,需要自已写synchronize.
像下面这样

[_internal lock]; // lock using an object-level lock

id result = [[value retain] autorelease];

[_internal unlock];

return result;

如果你声明了 nonatomic ,你确认这个变量不会在多线程中用到的话,那么 读写只是简单的返回 没有 lock的动作 效率上就提高了通常说nonatomic 是提高在非多线程应用中的 读写效率.

 

readwrite 和 readonly 在不声明的时候 默认是带readwrite参数的 就是 这个变量可以读写.
如果你声明了readonly 就是只读.


assign retain 和 copy 
copy 是分配一个新的空间,从原址的内容复制内容过来.
assign 只是简单的传递指针.

retain 是在传递指针后 retainCount +1  这是最常用的一种了。对于此类变量,需要在
dealloc 后relase,建议是在每个 object的 m文件里 成对的创建和销毁变量.谁创建,谁负责销毁,谁 retain 谁来release。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值