我希望将Haskell引擎作为C库嵌入到IOS 5项目中 - 在IOS应用程序内运行Haskell代码。因此,我有几个问题:
- 是否已知在ARC下Haskell会暴露出任何内存管理问题?
- 我如何确保Haskell不会干扰IOS的内存管理?
- 处理这些问题的有效策略可能是什么?
我希望将Haskell引擎作为C库嵌入到IOS 5项目中 - 在IOS应用程序内运行Haskell代码。因此,我有几个问题:
ARC 是一种严格的编译时代码生成过程,与 Objective-C 代码相关。ARC 基本上意味着“在编译时将 retain、release 和 autorelease 语句插入源代码中,以便程序员不必手动添加”。
因此,ARC 对非 Objective-C 代码(即常规 C 库)不会产生任何影响,并且没有运行时行为可能会干扰 Haskell 引擎的垃圾回收行为。
*实际上 ARC 的工作方式并不是这样,它生成优化后的汇编代码而不是源代码,但作为类比,这是它如何工作的一个很好的描述。
**严格来说,ARC 并不是没有运行时行为,因为在运行时会发生弱指针管理,但同样只适用于 Objective-C 对象,对 Haskell 代码不会产生任何影响。