Има ли REPL за Objective-C?
Уча Objective-C и много ми липсва REPL, идващ от фона на Python.
Има ли REPL за Objective-C?
Уча Objective-C и много ми липсва REPL, идващ от фона на Python.
Когато се задейства точка на прекъсване, дебъгерът трябва да се отвори. Когато сте в програмата за отстраняване на грешки, можете да въведете каквото искате в gdb. Можете да използвате p [someObj someMethod]
, за да отпечатате неща, които са в обхвата на вашата точка на прекъсване. gdb е мощна помощна програма, добре документирана в цялата мрежа.
Това ще бъде възможно най-близо до това, което според мен преследвате. Това е просто много по-тромаво нещо в компилираните езици, тъй като няма eval
в Objective-C.
Доколкото знам, най-близкото, което можете да стигнете до REPL в момента, наистина е чрез дебъгери (т.е. GDB или LLVM дебъгерът LLDB).
За чист C има CCons.
Повечето неща в Objective-C API на Apple (особено 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
Прочетете тази интересна пълна статия за отстраняване на грешки за повече информация.