ARC запрещает синтезировать свойство с неопределенным правом собственности или хранением
Я создал @property
из UIColor
,
@property (nonatomic) UIColor *color;
а затем я попытался его синтезировать:
@synthesize color = _color;
но я получаю сообщение об ошибке:
ARC запрещает синтезировать свойство объекта Objective-C с неопределенным атрибутом собственности или хранения
Что это значит?
Все, что я пытаюсь сделать, это создать свойство для объекта UIColor
, который меняет цвет.
Ответы
Ответ 1
Измените объявление своей собственности на:
@property (nonatomic,strong) UIColor *color;
чтобы ARC знал, что его следует сохранить. Это было бы скомпилировано без strong
до ARC, но это было бы опасно, поскольку по умолчанию был assign
, и цвет был бы выпущен, если он не был сохранен в другом месте.
Я бы очень рекомендовал видео WWDC2011 о ARC.
Ответ 2
В объявлении свойства вы должны указать хранилище strong
или weak
(рядом с nonatomic
).