原子属性的setter和getter [英] setter and getter for an atomic property

查看:107
本文介绍了原子属性的setter和getter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下属性值的自动生成的getter和setter是什么样的?

what's the auto-gen'd getter and setter look like for the following property value?

... in .h
@interface MyClass : NSObject {
@private
    NSString *_value;
}

@property(retain) NSString *value;

... in .m
@synthesize value = _value;

如果我将属性更改为

@property(retain, readonly) NSString *value;

特别是,我对故事的原子部分,保留以及感兴趣的部分感兴趣,如果可能的话,详细的代码将更清楚地了解幕后到底发生了什么.

specifically I am interested in the atomic part of the story, plus the retain, and if possible, detailed code would be more clear as to what's going exactly going on behind the scene.

推荐答案

它们看起来像:

- (NSString*) value 
{
    @synchronized(self) {
        return [[_value retain] autorelease];
    }
}

- (void) setValue:(NSString*)aValue
{
    @synchronized(self) {
        [aValue retain];
        [_value release];
        _value = aValue;
    }
}

如果将属性更改为只读,则不会生成任何setter.吸气剂将是相同的.

If you change the property to readonly, no setter is generated. The getter will be identical.

这篇关于原子属性的setter和getter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆