在objective-c中atomic和nonatomic有什么区别?retain有什么用?
高洛峰
高洛峰 2017-04-21 10:57:07
[iOS讨论组]

比如下面的代码

@property(nonatomic, retain) UITextField *userName;
@property(atomic, retain) UITextField *userName;

他们有啥区别,retain在这里起啥作用

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
ringa_lee

retain是给属性的引用计数加1
这里的retain是指,这个setter会给参数的引用计数加1。例如:

self.userName = uName;

这个时候 uName的引用计数会被加1。
但是SDK5.0以后支持ARC,就是自动应用计数,所以定义属性就不用retain和copy了,而用strong,让ARC来管理。
提供苹果核的一篇文章可供参考:http://pingguohe.net/2011/08/05/llvm3...

黄舟

atomic线程安全,性能低于nonatomic。noatomic不保证线程安全。

ringa_lee

atomic 并不代表线程安全,只是说对同一对象的set和get的操作是顺序执行的。

阿神

iOS atomic 与 nonatomic 区别

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号