【发布时间】:2014-03-31 23:37:06
【问题描述】:
在 Apple 关于 ARC 的文档中,他们特别指出了一个有问题的场景,即 ARC 将在幕后生成样板临时变量。搜索“编译器因此重写”:
警告的要点似乎是因为基于堆栈的变量是“强”的,并且被调用方法 (performOperationWithError:) 的引用参数是自动释放的,ARC 将生成一个临时局部变量来服务内存自动释放变量的管理需求。但是因为在样板示例中临时变量被分配给强变量,所以从客户的角度来看似乎没有风险。
文档在这里煞费苦心地警告我们的到底是什么?作为客户端或作为可能以这种方式调用的方法的实现者(使用自动释放的按值返回参数)有什么风险?
【问题讨论】:
标签: ios objective-c macos cocoa automatic-ref-counting