为了创建CoreGraphics开发的沙箱(目前为了达到预期的效果,它包括执行多次构建和运行尝试),我很好奇是否有办法在运行时动态加载类文件。动态加载类文件(Objective-C)
很像Java的类加载器的能力,我希望使用NSBundle或类似的东西动态地加载一个类到内存中。
这个想法是设置一个沙箱项目,只需要编译然后动态地重新加载类,而不必停止并重新运行主机应用程序。
为了创建CoreGraphics开发的沙箱(目前为了达到预期的效果,它包括执行多次构建和运行尝试),我很好奇是否有办法在运行时动态加载类文件。动态加载类文件(Objective-C)
很像Java的类加载器的能力,我希望使用NSBundle或类似的东西动态地加载一个类到内存中。
这个想法是设置一个沙箱项目,只需要编译然后动态地重新加载类,而不必停止并重新运行主机应用程序。
NSBundle
可用于动态加载代码。看看-load
。
我不明白你为什么要重新加载这样一个包。 (你可以通过-unload
和-load
。)感觉不对,唯一被再次调用的代码是+load
和+initialize
。你只需要创建一个新的类的实例。
我期望做的事实质上是在运行时引入一个包。卸载软件包并重新加载一个新软件包。我想要这样做,而不必停止并启动应用程序。 – 2009-12-16 18:28:14
如果卸载时没有任何对该软件包的引用,则可以使用'-unload'。如果你有参考资料,我无法帮助你,但我在这方面还没有任何经验。也许你可以使用'CFBundle'使用CoreFoundation bundle支持来解决你的问题,这与'NSBundle'完全不同。 – 2009-12-17 05:22:05
一篇描述动态包的文章:http://www.stone.com/The_Cocoa_Files/Dynamic_Bundles.html – 2009-12-15 07:19:15