2011-02-02 83 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/