强,复制,弱和原子和非原子分配的自定义设置器?

Posted

技术标签:

【中文标题】强,复制,弱和原子和非原子分配的自定义设置器?【英文标题】:Custom Setter for Strong, Copy, weak and assign with atomic and nonatomic? 【发布时间】:2016-06-15 04:00:28 【问题描述】:

就像这是非原子的 COPY 的 Setter

@property (copy, nonatomic) NSString *someString;

-(void)setSomeString:(NSString *)someString 
  _someString = someString;
  _someString = [someString copy];

像这样我想知道强、弱和赋值的setter和getter

@property (copy, atomic) NSString *someString; // Setter ?
@property (Strong, nonatomic) NSString *someString;
@property (assign, nonatomic) NSString *someString;
@property (Strong, atomic) NSString *someString;
@property (assign, atomic) NSString *someString;

【问题讨论】:

【参考方案1】:

例如:setter 方法

- (void)setImgView:(UIImageView *)imgView
    if (_imgView == imgView) 
        return;
    
    _imgView = imgView;
    _imgView.layer.borderColor = [UIColor clearColor].CGColor;
    _imgView.layer.borderWidth = 0.0f;
    _imgView.layer.cornerRadius = _imgView.frame.size.width/2;

【讨论】:

以上是关于强,复制,弱和原子和非原子分配的自定义设置器?的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C 声明的@property 属性(非原子、复制、强、弱)

混合原子和非原子变量和缓存

标准原子同步和非原子变量:不是过时的数据?

java并发编程原子变量和非阻塞的同步机制

第十五章 原子变量和非阻塞同步机制

Java并发编程实战 第15章 原子变量和非阻塞同步机制