ARC:使用自定义设置器转换保留的声明属性

Ste*_*eve 3 objective-c automatic-ref-counting

我正在尝试将项目转换为使用ARC.

我有一个声明的属性,如:

@property (nonatomic, retain, setter=setSomeProperty:) SomeClass * someProperty;
Run Code Online (Sandbox Code Playgroud)

接口中setter方法的声明:

-(void)setSomeProperty:(SomeClass *)value;
Run Code Online (Sandbox Code Playgroud)

我有一个看起来像这样的setter的实现:

-(void)setSomeProperty:(SomeClass *)value
{
    if (_value != value)
    {
         [_value release];
         _value = [value retain];
    }

    // Other things...
}
Run Code Online (Sandbox Code Playgroud)

我在尝试使用"转换为Objective-C ARC ..."工具时遇到错误:

错误:属性类型'someProperty'与访问者类型'setSomeProperty不匹配:'[ - 错误,3]

zap*_*aph 8

setSomeProperty从界面中删除方法的声明.在@property创建了一个声明,默认二传手是相同的声明.

-(void)setSomeProperty:(SomeClass *)value;
Run Code Online (Sandbox Code Playgroud)