Сохраняет ли CALayer объекты CGColor? - PullRequest
1 голос
/ 24 января 2012

У меня есть UIView, для которого я хотел бы установить его borderColor:

UIView *myView = ...;
myView.layer.borderWidth = 1;
myView.layer.borderColor = [UIColor greenColor].CGColor;

Насколько это безопасно? Объект UIColor будет автоматически освобожден, а вместе с ним и объект CGColor. Теперь, свойство borderColor сохраняет CGColor, чтобы можно было автоматически разрешить UIColor, или мне нужно сохранить UIColor в отдельной переменной экземпляра?

Ответы [ 2 ]

2 голосов
/ 24 января 2012

CGColor не является объектом в том же смысле, что и UIColor, но слой сохранит его, используя CGColorRetain(), так что это нормально

1 голос
/ 24 января 2012

Да. Поскольку слою нужен цвет, чтобы он мог функционировать, он сохраняет его.

Хотя я согласен с тем, что документы или декларация @property должны декларировать это намерение.

...