代码之家  ›  专栏  ›  技术社区  ›  Dan Rosenstark

将垃圾收集添加到iPhone?

  •  3
  • Dan Rosenstark  · 技术社区  · 14 年前

    MonoTouch在iPhone上有自动垃圾收集功能。 难道有人不能在iOS上过早地为Objective-C实现垃圾收集吗? 我不是做这件事的人,但我很好奇为什么这样做,或者这是否不可能。

    我知道项目 this 存在:在iOS上使用它们需要什么?因为它们在C/C++中,而Objtovi-C包含这些语言作为子集,但是,这些语言实际上知道系统体系结构…我不在这里了…

    当我们在这里的时候,如果有人知道有任何在iOS上实现GC的尝试,那么链接将会很有帮助…

    2 回复  |  直到 14 年前
        1
  •  7
  •   Yuji    14 年前

    我认为这是不可能的。问题是在系统库中也使用了Objective-C。在支持垃圾收集目标C的OS X中,编译代码时实际上有三种模式:

    1. 只能从非GC环境调用已编译的函数。
    2. 只能从GC环境调用已编译的函数。
    3. 编译的函数可以从GC和非GC环境中调用。

    查看讨论 here 例如。重点是系统库需要处于第三种模式,以便操作系统同时支持非GC和GC应用程序。在OSX中,库以这种混合模式出现。在iOS中,我想它是在模式1中。(我不确定,因为我还没有越狱。)

    如果您对系统库和应用程序都有完全的控制权,就可以将它们全部垃圾收集起来,但不幸的是,我们还没有进入那个阶段。

    我相信两年后我们会在iOS上安装GC。

        2
  •  1
  •   Community Egal    7 年前

    没有什么能阻止你为你的应用建立你自己的垃圾收集器。或者导入另一个将处理它的项目。同样,对于你的应用程序。

    更多讨论:

    Is garbage collection supported for iPhone applications?