CALayer是否保留CGColor对象



我有一个UIView,我想为它设置borderColor:

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

这样做安全吗?UIColor对象将自动发布,CGColor对象也将随之发布。现在,borderColor属性是否保留CGColor,以便可以安全地自动释放UIColor,还是必须将UIColor保留在单独的实例变量中?

CGColor不是与UIColor相同意义上的对象,但层将使用CGColorRetain()保留它,因此这是一个很好的

是。由于图层需要颜色才能存在,所以它会保留颜色。

尽管我同意文档或@property声明应该声明这一意图。

最新更新