在Objective C中为弱属性创建自定义setter的正确方法是什么?

ade*_*ine 16 properties objective-c automatic-ref-counting

如果我声明这样的属性:

@property(nonatomic,weak) Foo *someProperty;
Run Code Online (Sandbox Code Playgroud)

然后我声明一个自定义setter,如下所示:

- (void)setSomeProperty:(Foo *)someProp {
    _someProperty = someProp;
    //...more custom stuff
}
Run Code Online (Sandbox Code Playgroud)

这有什么不对吗?也就是说,编译器应该自动使用__weak修饰符合成_someProperty ivar,所以只需在上面的setter中进行赋值就足够了,对吗?

Ric*_*own 13

是的,这就是它的全部.当然,如果您不喜欢以下内容,可以指定自定义iVar _someProperty:

@synthesize someProperty = someProperty_;
Run Code Online (Sandbox Code Playgroud)