我有几个类方法。该项目已启用ARC。在这种情况下,内存管理如何工作?何时释放在类方法中创建的对象?应该手动完成吗?我有点困惑。
答案 0 :(得分:1)
ARC会自动将该对象中的变量标记为自动释放,因此当释放对象时,其中的对象也会被释放。
如果你正在使用ARC,你不应该过多担心它,尽管知道记忆是如何工作的很好。
答案 1 :(得分:0)
你不必担心这一点。 ARC还将处理类方法中的内存管理。当前执行完成时,对象是释放。你不需要手动释放那些对象。
答案 2 :(得分:0)
ARC通过在编译时添加代码来确保对象在必要时生效,但不再生效。从概念上讲,它通过为您添加适当的内存管理调用,遵循与手动引用计数(在高级内存管理编程指南中描述)相同的内存管理约定。
为了让编译器生成正确的代码,ARC限制了您可以使用的方法以及如何使用免费桥接(请参阅“免费桥接类型”)。 ARC还为对象引用和声明的属性引入了新的生命周期限定符。
适用于OS X v10.6和v10.7(64位应用程序)以及iOS 4和iOS 5的Xcode 4.2支持ARC .OS X v10.6和iOS 4不支持弱引用。Xcode提供了一个工具,可以自动执行ARC转换的机械部分(例如删除保留和释放调用),并帮助您修复迁移器无法自动处理的问题(选择编辑>重构>转换为目标 - C ARC)。迁移工具将项目中的所有文件转换为使用ARC。如果对某些文件使用手动引用计数更方便,也可以选择在每个文件的基础上使用ARC。