Свойства и аксессоры в Objective-C - PullRequest
0 голосов
/ 22 мая 2011

Вызывает ли следующий код функцию 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 Ответ

5 голосов
/ 22 мая 2011

Без записи self. переменная экземпляра изменяется напрямую.При этом вызывается установщик свойства (и поскольку вы сделали его свойством retain, новому указателю, для которого он установлен, будет отправлено сообщение retain).

См. Документацию Apple по * 1006.* объявив и доступ к свойствам .

...