2013-07-02 7 views
4

В xcode возможно получить некоторый код Objective-C, чтобы увидеть код, который будет выводиться в Assembly.
Возможно ли увидеть данный код с поддержкой ARC, чтобы увидеть Objective-C, который будет выводиться ARC?Возможно ли увидеть вывод ARC Objective-C?

+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. НТН.

Смежные вопросы