[[CashApelayer Alloc] Init]和[CashApelayer层]之间的区别



我注意到大多数人在初始化 CAShapeLayer时使用:

CAShapeLayer *shapeLayer = [CAShapeLayer layer];

而不是使用初始化器:

CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];

我想知道使用其中一种或通常更好的是有什么特别的差异?

第一个返回自我发行对象。由于它已被自动释放,因此您不是它的所有者。当Autorelease池(其居住在其中)释放时,该对象将自动为您发布。

第二个返回 1保留计数的对象。您是该对象的所有者,因此负责release IT。但是 - 使用ARC,您可能不需要像我们那样致电release

相关链接:

  1. 目标C方法家庭
  2. 基本内存管理规则

相关内容

  • 没有找到相关文章

最新更新