在objective-c中atomic和nonatomic有什么区别?retain有什么用?
高洛峰
高洛峰 2017-04-21 10:57:07
0
4
465

比如下面的代码

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

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

高洛峰
高洛峰

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

reply all(4)
左手右手慢动作

retain is to add 1 to the reference count of the attribute
The retain here means that this setter will add 1 to the reference count of the parameter. For example:

self.userName = uName;

At this time, the reference count of uName will be increased by 1.
However, SDK 5.0 and later supports ARC, which means automatic application counting. Therefore, there is no need to retain and copy when defining attributes. Instead, use strong to let ARC manage it.
An article providing apple core for reference: http://pingguohe.net/2011/08/05/llvm3...

黄舟

Atomic is thread safe and has lower performance than nonatomic. noatomic does not guarantee thread safety.

左手右手慢动作

atomic does not mean thread safety, it just means that set and get operations on the same object are executed sequentially.

阿神

The difference between iOS atomic and nonatomic

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template