Objective-C中的属性和访问器

时间:2011-05-21 23:29:12

标签: objective-c class accessor

以下代码是否会调用访问者“set”函数,还是直接修改指针myMember

aClass.h

@interface MyClass : NSObject {
    NSArray *myMember;
}

@property (nonatomic, retain) NSArray *myMember;

aClass.c

@implementation GameplayScene

@synthesize myMember;

- (id) init {
    if ( (self = [super init]) )
    {
        myMember = [NSArray array];
    }
}

换句话说,我想知道是否正在调用方法setMyMember,或者是否正在直接修改myMember的指针。

同样,myMember = [NSArray array]self.myMember = [NSArray array]相同吗?

1 个答案:

答案 0 :(得分:5)

如果没有self.表示法,则直接修改实例变量。使用它,调用属性setter(并且因为你使它成为retain属性,所以它被设置为的新指针将被发送retain消息。

请参阅有关declaringaccessing properties的Apple文档。