Can I create an Objective-C class at run time from a text file?
嗨,伙计们,我有个奇怪的问题。我想在运行时从一个文件创建一个目标C类。例如,我有一个目标C应用程序,我想把它指向一个文本文件(或者一个.h.m对,不管它起什么作用),然后让应用程序解析文本文件并在运行时创建类(没有对象类)。当然,我会编写解析器和所有我想知道是否可能的东西。我读了这两篇文章:
http://www.mikeash.com/pyblog/friday-qa-2010-11-6-creating-classes-at-runtime-in-objective-c.html
http://www.mikeash.com/pyblog/friday-qa-2010-11-19-creating-classes-at-runtime-for-fun-and-profit.html
它演示了如何在运行时生成一个目标C类,但它是使用在编译时定义的C函数完成的。如果我能找到一种方法,用字符串来定义完美的函数,那么我就不需要在编译时定义它们了。
这就是所谓的反射编程。我猜OBJ-C没有代码评价支持,因为它不是一种书写语言,所以OBJ-C的反思概念是有限的。此外,在运行时,编译器将代码转换成OBJ-C clang代码,这是一项非常及时的工作,只是为了反复转换字节并重新编译它。
为了OBJ-C的反射,你可以重复这些答案
- 建立一个等级:创建客观类诉讼程序
- 实施一种方法:客观的,我怎么能在另一个班上用一种方法
- Change class for an object:Objective-C:How to change the class of an object at runtime?
见我的Github Project Coca-Interpreter it does part of what you want.
It takes a text file and compiles it at runtime..然后用NSTASK运行可执行的结果。这很容易改变,所以二进制被装载到自己的过程中使用NSBUNDLE。
https://github.com/daij-djan/coca-interpreter
当然完全有可能
我建议以客观的C支持开始这项工作,包括一个完整的客观的C帕瑟和代码发生器。