Objective-C中的属性和访问器
以下代码是否调用访问器“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]是否相同?
没有self. 符号,实例variables被直接修改。 有了它,属性设置器被调用(并且由于您已将其设置为retain属性,因此将设置的新指针将发送retain消息)。
请参阅Apple 声明和访问属性的文档。