【问题标题】:Does CALayer retain CGColor objects?CALayer 是否保留 CGColor 对象?
【发布时间】:2012-01-24 10:45:58
【问题描述】:

我有一个 UIView,我想为其设置它的边框颜色:

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

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

【问题讨论】:

    标签: objective-c ios uikit calayer


    【解决方案1】:

    CGColorUIColor 的意义不同,但层会使用CGColorRetain() 保留它,所以这很好

    【讨论】:

      【解决方案2】:

      是的。由于图层需要颜色存在才能发挥作用,所以它保留了它。

      虽然我同意文档或@property 声明应声明此意图。

      【讨论】:

      • 是的,这就是我感到困惑的原因。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      相关资源
      最近更新 更多