4

在 xcode 中,可以给定一些 Objective-C 代码,以查看它将在 Assembly 中输出的代码。
是否可以看到给定的启用 ARC 的代码,看到将由 ARC 输出的 Objective-C?

4

2 回答 2

5

ARC 并不是这样输出 Objective-C 的,它是编译器的一个阶段,它改变了编译器生成的汇编器/机器代码 - 正如您所指出的,您可以在 Xcode 中看到这一点。但是,如果您对二进制文件使用反编译器,您应该会看到“MRC 等效项”,这与您将获得的一样好。尝试Hopper - 可用演示,我自己没有使用过,不知道生产者等。但是它产生伪代码,看起来像结构化程序集,而不是 Objective-C。HTH。

于 2013-07-02T23:06:26.930 回答
5

这是不可能的,因为 ARC 不生成 Objective-C 代码。ARC 是一种编译器功能,可以修改生成的程序集,其方式与启用优化可能执行的方式相同。你不能告诉编译器向你展示“优化”的 C 代码;优化不适用于 C 代码级别。同样,您不能要求查看“ARC 化”的 Objective-C,因为 ARC 内存管理调用并未应用于 Objective-C 代码级别。

如果您真的想查看在哪里进行内存管理调用,则必须查看程序集。

于 2013-07-02T23:06:30.367 回答