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 声明和访问属性的文档。