Есть ли REPL для Objective-C?
Я изучаю Objective-C, и мне очень не хватает REPL, исходя из фона Python.
Есть ли REPL для Objective-C?
Я изучаю Objective-C, и мне очень не хватает REPL, исходя из фона Python.
Когда срабатывает точка останова, отладчик должен открыться. Находясь в отладчике, вы можете ввести все, что хотите, в gdb. Вы можете использовать p [someObj someMethod]
для вывода вещей, которые находятся в области действия вашей точки останова. gdb — мощная утилита, хорошо задокументированная во всем Интернете.
Это будет максимально близко к тому, что, как я думаю, вам нужно. Это просто гораздо более неуклюжая вещь в скомпилированных языках, поскольку в Objective-C нет eval
.
Насколько мне известно, ближе всего к REPL на данный момент можно добраться через отладчики (например, GDB или отладчик LLVM LLDB).
Для чистого C есть CCons.
Большинство вещей в Apple Objective-C API (особенно Foundation) также имеют прямые эквиваленты C (например, CFRelease(obj);
совпадает с [obj release];
), которые вы можете использовать в CCons.
CCons построен на основе LLVM и Clang, которые также поддерживают Objective-C. Вероятно, можно расширить CCons для поддержки Objective-C.
«Пробная» версия CoderPad предоставляет общедоступный самостоятельный REPL для миллиона языков, включая objc!!! Я только что использовал его, и это действительно хороший инструмент продаж для них (я не аффилирован, они делают инструменты для людей, проводящих собеседования с программистами). https://coderpad.io/
В проекте Gambit Objective-C, похоже, предпринимается попытка создать REPL на основе схемы.
REPL в Ruby Motion также должен быть хорош для исследовательских целей (сам я не пробовал, хоть).
Да, REPL находится в окне вывода.
"печатный объект"
po object
но также выполнять команды, которые работают как код приложения с
expression i = 5
Прочитайте эту интересную полную статью об отладке для получения дополнительной информации.