2013-07-02 38 views
4

在xcode中,可能會給出一些Objective-C代碼,以查看它將在Assembly中輸出的代碼。
是否可以看到給定的啓用ARC的代碼,以查看將由ARC輸出的Objective-C?是否可以看到Objective-C ARC輸出?

+0

它可能有趣於你:http://clang.llvm.org/docs/AutomaticReferenceCounting.html – holex

回答

5

這是不可能的,因爲ARC不會生成Objective-C代碼。 ARC是一種編譯器功能,它可以修改與啓用優化功能相同的方式生成的程序集。你不能告訴編譯器向你展示「優化的」C代碼;優化不適用於C代碼級別。同樣,您不能要求查看「ARC-ified」Objective-C,因爲ARC內存管理調用不適用於Objective-C代碼級別。

如果你真的想看看內存管理調用的地方,你必須看看程序集。

5

ARC不是這樣的輸出Objective-C,它是編譯器的一個階段,它改變了編譯器生成的彙編/機器代碼 - 正如你所提到的,你可以在Xcode中看到。但是,如果您在二進制文件上使用反編譯器,則應該看到一個「MRC等效」,這與您將得到的一樣好。嘗試Hopper - 演示可用,我沒有使用它自己,不知道生產者等,但它產生psuedo代碼,它看起來像結構化的程序集,而不是Objective-C。 HTH。

相關問題