-2

我有几个带有类方法的类。该项目已启用 ARC。在这种情况下,内存管理如何工作?当在类方法中创建的对象被释放?应该手动完成吗?我有点困惑。

4

3 回答 3

1

ARC 会自动将该对象中的变量标记为自动释放,因此当您的对象被释放时,其中的对象也会被释放。

如果您使用 ARC,则不必太担心,尽管了解内存的工作原理是件好事。

于 2013-11-14T10:31:28.570 回答
0

你不必担心这一点。ARC 还将处理您的类方法中的内存管理。对象是当前执行完成时的释放。您不需要手动释放该对象。

于 2013-11-14T10:35:07.020 回答
0

ARC 通过在编译时添加代码来确保对象在必要时存在,但不再存在。从概念上讲,它通过为您添加适当的内存管理调用来遵循与手动引用计数(在高级内存管理编程指南中描述)相同的内存管理约定。

为了让编译器生成正确的代码,ARC 限制了您可以使用的方法以及您如何使用免费桥接(请参阅“免费桥接类型”)。ARC 还为对象引用和声明的属性引入了新的生命周期限定符。

ARC 在 Xcode 4.2 中支持 OS X v10.6 和 v10.7(64 位应用程序)以及 iOS 4 和 iOS 5。弱引用在 OS X v10.6 和 iOS 4 中不受支持。

Xcode 提供了一个工具,可以自动化 ARC 转换的机械部分(例如删除保留和释放调用),并帮助您修复迁移器无法自动处理的问题(选择 Edit > Refactor > Convert to Objective-C ARC)。迁移工具将项目中的所有文件转换为使用 ARC。如果您对某些文件使用手动引用计数更方便,您还可以选择基于每个文件使用 ARC。

于 2013-11-14T10:44:17.347 回答