比如下面的代码
@property(nonatomic, retain) UITextField *userName; @property(atomic, retain) UITextField *userName;
他们有啥区别,retain在这里起啥作用
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
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不保证线程安全。
atomic 并不代表线程安全,只是说对同一对象的set和get的操作是顺序执行的。
iOS atomic 与 nonatomic 区别
retain是给属性的引用计数加1
这里的retain是指,这个setter会给参数的引用计数加1。例如:
这个时候 uName的引用计数会被加1。
但是SDK5.0以后支持ARC,就是自动应用计数,所以定义属性就不用retain和copy了,而用strong,让ARC来管理。
提供苹果核的一篇文章可供参考:http://pingguohe.net/2011/08/05/llvm3...
atomic线程安全,性能低于nonatomic。noatomic不保证线程安全。
atomic 并不代表线程安全,只是说对同一对象的set和get的操作是顺序执行的。
iOS atomic 与 nonatomic 区别