首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[[CAShapeLayer alloc] init]和[CAShapeLayer layer]之间的差异

[[CAShapeLayer alloc] init]和[CAShapeLayer layer]之间的差异
EN

Stack Overflow用户
提问于 2012-11-10 22:54:31
回答 1查看 1.2K关注 0票数 0

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

代码语言:javascript
复制
CAShapeLayer *shapeLayer = [CAShapeLayer layer];

而不是使用初始化器:

代码语言:javascript
复制
CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];

我想知道使用这两种方法中的哪一种有什么特别的区别,或者哪一种通常更好?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-10 23:12:45

第一个函数返回一个自动释放的对象。因为它是自动发布的,所以你不是它的所有者。当自动释放池(它所在的池)被释放时,该对象将自动为您释放。

第二个函数返回一个保留计数为+1的对象。您是该对象的所有者,因此负责对其执行release操作。然而,使用ARC,你可能不需要像我们那样调用release

相关链接:

  1. Objective C Method Families
  2. Basic Memory Management Rules
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13323087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档