Подтвердить что ты не робот

ARC запрещает синтезировать свойство с неопределенным правом собственности или хранением

Я создал @property из UIColor,

@property (nonatomic) UIColor *color;

а затем я попытался его синтезировать:

@synthesize color = _color;

но я получаю сообщение об ошибке:

ARC запрещает синтезировать свойство объекта Objective-C с неопределенным атрибутом собственности или хранения

Что это значит?

Все, что я пытаюсь сделать, это создать свойство для объекта UIColor, который меняет цвет.

4b9b3361

Ответ 1

Измените объявление своей собственности на:

@property (nonatomic,strong) UIColor *color;

чтобы ARC знал, что его следует сохранить. Это было бы скомпилировано без strong до ARC, но это было бы опасно, поскольку по умолчанию был assign, и цвет был бы выпущен, если он не был сохранен в другом месте.

Я бы очень рекомендовал видео WWDC2011 о ARC.

Ответ 2

В объявлении свойства вы должны указать хранилище strong или weak (рядом с nonatomic).