如何将 [[ivar retain] autorelease] 转换为 ARC?

Posted

技术标签:

【中文标题】如何将 [[ivar retain] autorelease] 转换为 ARC?【英文标题】:How to convert [[ivar retain] autorelease] to ARC? 【发布时间】:2012-07-04 19:08:18 【问题描述】:

如何将以下代码转换为ARC?

- (NSString *) shardId 
  return [[__shardId retain] autorelease];

以下为我编译,但不确定是否存在任何潜在问题。

- (NSString *) shardId 
  return __shardId;

【问题讨论】:

【参考方案1】:

该代码是正确的 - ARC 将为您处理正确的内存管理。

【讨论】:

在 ARC 下更好——因为如果结果立即被调用者保留,ARC 方法实际上会检测到这一点并放弃保留/自动释放在也调用站点:o)

以上是关于如何将 [[ivar retain] autorelease] 转换为 ARC?的主要内容,如果未能解决你的问题,请参考以下文章

内存管理机制

我可以将标准 ivars 和属性添加到 NSManagedObject 吗?

具有额外 ivars 和方法的核心数据管理对象

objective-c高级编程 笔记

UIScrollView 委托如何知道我的 UIScrollView ivar?

ivars 和循环方法