3

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

我有一个这样的声明属性:

@property (nonatomic, retain, setter=setSomeProperty:) SomeClass * someProperty;

接口中setter方法的声明:

-(void)setSomeProperty:(SomeClass *)value;

我有一个如下所示的 setter 实现:

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

    // Other things...
}

尝试使用“转换为 Objective-C ARC ...”工具时出现错误:

错误:属性“someProperty”的类型与访问器“setSomeProperty:”的类型不匹配 [-Werror,3]

4

1 回答 1

8

setSomeProperty从接口中删除方法的声明。@property创建一个声明,默认设置器与声明的相同。

-(void)setSomeProperty:(SomeClass *)value;
于 2011-10-13T02:31:49.717 回答