ARC запрещает синтезировать собственность с неопределенным владением или хранением - PullRequest
20 голосов
/ 11 декабря 2011

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

@property (nonatomic) UIColor *color;

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

@synthesize color = _color;

, но получил ошибку:

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

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

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

Ответы [ 2 ]

37 голосов
/ 11 декабря 2011

Измените декларацию собственности на:

@property (nonatomic,strong) UIColor *color;

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

Я очень рекомендую видео WWDC2011 об ARC.

4 голосов
/ 11 декабря 2011

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

...