项目没有垃圾收集器osx

时间:2016-03-31 15:08:18

标签: objective-c macos data-structures automatic-ref-counting

在我的学校,我们收到了用任何编程语言做项目的任务,但是用自定义数据结构和编程语言不能有垃圾收集器。建议使用C ++。但我在Objective-c方面有更好的技能。所以我在我的Xcode项目中禁用了ARC,现在我应该在Java中创建类似ArrayList的自定义数据结构。我不能使用NSMutableArray或NSArray。可以像C ++一样使用内存并创建自定义数据结构吗?

感谢您的回复

1 个答案:

答案 0 :(得分:1)

您有两个基本选择:

  1. struct用于数据结构,malloc / free(和朋友)用于动态内存分配 - 就像在C(++)中一样;或
  2. 您可以使用NSObject派生类和alloc / init / new / retain / release(以及朋友)为您的动态内存管理。为此,您必须禁用ARC。
  3. 鉴于这是一项学校任务,您可能希望检查第二项是否可接受 - 您仍在使用Objective-C引用计数机器,即使您手动调用操作。你的教授可能认为不可接受。

    第一个选择是更基本的,你将完全负责所有关于何时不再需要内存的决定。实际上,您可以选择实施自己的引用计数甚至标记扫描。

    HTH