2012-01-24 2 views
1

У меня есть UIView, для которых я хотел бы установить его BorderColor:Сохраняет ли CALayer объекты CGColor?

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

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

ответ

2

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

+0

отлично, спасибо за разъяснение этого! – Tom

1

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

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

+0

Да, вот почему я был в замешательстве. Благодаря! – Tom

Смежные вопросы