我一直在使用Objective-C中的一些XML实用程序,包括我自己的围绕FILE *
值构建的IO流对象。为了安全地执行此操作,请在释放流对象时调用文件指针上的fclose
(如果我还没有这样做)。
我的策略(以及许多其他重新分配任务)长期以来都要覆盖finalize
的{{1}}方法。但是我只是阅读(并通过测试确认)在解除分配期间根本不再调用NSObject
。
OS X v10.8中不推荐使用垃圾收集;相反,您应该使用自动引用计数 - 请参阅Transitioning to ARC Release Notes。
显然,我现在已经浏览了两个版本的OS X而没有意识到我一直在耗尽系统资源。我阅读了这些发行说明,但我找不到任何对这个特定问题的引用。我无法找到任何替代方法来处理释放。
我为C / C ++数据类型编写了很多Objective-C包装器。我需要某种方式在释放包装器时释放非托管内存。
finalize
是否有ARC替代方案?如果不是我应该怎么做我的NSObjects中的malloc'd C / C ++类型?