以下代码是否会调用访问者“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]
相同吗?
答案 0 :(得分:5)
如果没有self.
表示法,则直接修改实例变量。使用它,调用属性setter(并且因为你使它成为retain
属性,所以它被设置为的新指针将被发送retain
消息。
请参阅有关declaring和accessing properties的Apple文档。