Компилятор ARC автоматически определяет, сохранять или назначать в переопределенном классе в зависимости от атрибутов свойства? - PullRequest
2 голосов
/ 02 ноября 2011

Я не знаю ассемблера достаточно хорошо, чтобы понимать такой сложный код, как Assembly для всего проекта, но я заметил, что если я добавлю атрибут strong в свойство, вызов _objc_storeStrong появится рядом со строкой в ​​моем сеттере где я правильно поменяю;

@interface ClassName : NSObject

@property (strong, nonatomic) NSSet *mySet;

@end


@implementation ClassName

@synthesize mySet;

-(void)setMySet:(NSSet *)newMySet
{
   mySet = newMySet;
   //do stuff
}

@end

Так? я прав? Компилятор ARC автоматически определяет, сохранять или назначать в переопределенном классе в зависимости от атрибутов свойства?

1 Ответ

0 голосов
/ 02 ноября 2011

Короче да. Поскольку вы устанавливаете свойство как strong, оно будет сохранено объектом. Если вы объявите свойство как weak, подразумеваемая (синтезированная) переменная будет __weak NSSet *mySet, и она не сохранит объект, но будет указателем автоматического обнуления.

...