在哪些情况下我们不能简单地依靠自动引用计数?

时间:2012-01-04 12:08:46

标签: iphone ios ipad memory-management automatic-ref-counting

我听说在某些情况下,开发人员仍然必须了解基本的内存管理规则。那么什么时候关于ARC的知识还不足以开发iOS应用程序呢?

(我知道mem管理基础,但朋友不知道并希望开始开发)。

2 个答案:

答案 0 :(得分:2)

我认为理解幕后发生的事情总是有帮助的,特别是在这种情况下,ARC使用命名约定来使一切正常工作。

但要直接回答你的问题:它无法自动处理保留周期,它只适用于对象,所以如果使用任何CoreFoundation方法,你仍然需要担心内存管理。

此外,如果您使用任何第三方或开源库,那么它们可能不兼容ARC(尽管您可以在一个可执行文件中混合ARC和非ARC代码)。

答案 1 :(得分:0)

dontWatchMyProfileless,

tl;博士:告诉你的朋友只使用ARC,剩下的就会自行解决。

长篇:

我在当地社区大学教授iOS编程。我提出这个并不是因为我是ARC的专家,而是我教过初学者现代的Objective-C。

真正的问题是专业的iOS程序员何时应该学习iOS内存管理的所有复杂功能?

在2011年秋季课程中,我能让学生在大部分学期忽略内存管理问题。当学生开始使用基于C的API - 核心图形,GCD等时,它随后出现。我在学生必须开始__bridge演员时介绍它。

ARC真的帮助学生学习了Cocoa Touch。内存管理作为一种高级功能出现,现在就是这样。特别是,我喜欢切换ARC on&关闭,以显示人们的内存泄漏。

现在,去找你的朋友编码。

安德鲁