ARC: преобразование сохраненного объявленного свойства с помощью пользовательского установщика - PullRequest
3 голосов
/ 13 октября 2011

Я пытаюсь преобразовать проект в ARC.

У меня есть объявленное свойство, подобное:

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

Объявление метода установки в интерфейсе:

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

И у меня есть реализация сеттера, которая выглядит так:

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

    // Other things...
}

Я получаю сообщение об ошибке при попытке использовать инструмент "Преобразовать в Objective-C ARC ...":

ошибка: тип свойства 'someProperty' не соответствует типу метода доступа 'setSomeProperty:' [-Werror, 3]

1 Ответ

8 голосов
/ 13 октября 2011

Удалите объявление метода setSomeProperty из интерфейса. @property создает объявление, и установщик по умолчанию совпадает с объявленным.

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