比如下面的代码
@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 區別