2011-02-02 36 views

回答

9

F-Script爲Cocoa開發提供了Smalltalk靈感的REPL,Nu提供了一個基於Lisp的開發。 F腳本似乎更精美一些,並提供了一個對象瀏覽器。

他們似乎都是針對OS X,而不是iOS開發。有人在描述使用Nu開發iOS應用程序的人中發表了各種論壇和博客文章,但他們似乎都來自大約兩年前。還有一個YouTube視頻,「使用Scheme REPL實時調試iPhone應用程序」,使用Scheme調試iPhone應用程序的屏幕錄像。

我還沒有嘗試過任何這些技術,但我很樂意聽到任何有這些技術的人。


我剛剛意識到這是一個更簡單的答案。如果你來自Python,並且想在REPL中嘗試Cocoa,那麼你應該只使用Python REPL。 OS X附帶Python到Objective-C bridge。只需運行Python,執行,然後關閉。 Ruby和Common Lisp還有其他橋樑。

當然,所有這些REPL只允許您編寫動態代碼來與Cocoa進行交互,但它們不會讓您編寫實際的Objective-C代碼,並對它進行解釋或動態編譯以動態地與之交互。所以沒有人真正符合你的原始要求。

4

當觸發斷點時,調試器應該彈出打開狀態。在調試器中,你可以輸入任何你想要的文件gdb。您可以使用p [someObj someMethod]來打印出在斷點範圍內的東西。 gdb是一個功能強大的實用程序,遍佈整個網絡。

這將會盡可能接近我認爲的你。在編譯語言中,這只是一個非常笨重的事情,因爲Objective-C中沒有任何eval

+2

你不能在調試器中聲明和/或分配新變量,對吧?您只能檢查/修改現有變量。 – d11wtq 2013-02-13 09:43:13

+0

是的,你可以。 http://stackoverflow.com/questions/11192511/does-lldb-have-convenience-variablesvar – 2014-01-08 01:37:41

3

據我所知,目前最接近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。

0

Gambit Objective-C項目中,似乎嘗試創建基於Scheme的REPL。

Ruby Motion REPL 012也被認爲是探索性的目的(儘管我沒有嘗試過)。

0

CoderPad的'試用'爲衆多語言提供了一個面向公衆的自我REPL,包括objc!我剛剛使用它,它對他們來說真的是一個很好的銷售工具(我不是附屬的;他們爲面試編碼人員提供工具)。https://coderpad.io/