NSObject finalize 已弃用 - 我该怎么做?

NSObject finalize is deprecated - what do I do instead?

我一直在研究 Objective-C 中的一些 XML 实用程序,包括我自己的围绕 FILE * 值构建的 IO 流对象。为了安全地执行此操作,重要的是我在释放流对象时在文件指针上调用 fclose(如果我还没有这样做的话)。

我对此(以及许多其他重新分配任务)的策略长期以来一直是覆盖 NSObjectfinalize 方法。但是我刚刚读到(并通过测试确认)finalize 在释放期间根本不再被调用。

Garbage collection is deprecated in OS X v10.8; instead, you should use Automatic Reference Counting—see Transitioning to ARC Release Notes.

很明显,我现在已经使用了 OS X 的两个版本,却没有意识到我一直在消耗系统资源。我通读了这些发行说明,但找不到任何关于这个特定问题的参考。我找不到任何替代方法来处理释放。

我经常为 C/C++ 数据类型编写 Objective-C 包装器。当包装器被释放时,我需要一些方法来释放非托管内存。

是否有 finalize 的 ARC 替代方案?如果不是,我应该如何处理我的 NSObjects 中的 malloc'd C/C++ 类型?

来自 NSObject class reference...