Каков правильный способ создания настраиваемого сеттера для слабого свойства в Objective C?

Если я объявляю свойство, подобное этому:

@property(nonatomic,weak) Foo *someProperty;

и затем объявляю пользовательский сеттер следующим образом:

- (void)setSomeProperty:(Foo *)someProp {
    _someProperty = someProp;
    //...more custom stuff
}

Есть ли что-то не так с этим? То есть, компилятор должен автоматически синтезировать ivar _someProperty с помощью модификатора __weak, поэтому достаточно выполнить задание в установщике выше, правильно?

Ответ 1

Да, это все. Конечно, вы можете указать пользовательский iVar, если вам нужно что-то другое, кроме _someProperty, например:

@synthesize someProperty = someProperty_;