我想知道是否有一种方法可以在一个项目中混合使用C#和Obj-C代码。具体而言,我想在Obj-C中使用Cocos2D作为我的UI,并调用一些执行计算并获取一些返回值的MonoTouch C#库。有没有办法做到这一点?或者反过来,即在MonoTouch中构建并调用Cocos2D函数? 谢谢。
我想知道是否有一种方法可以在一个项目中混合使用C#和Obj-C代码。具体而言,我想在Obj-C中使用Cocos2D作为我的UI,并调用一些执行计算并获取一些返回值的MonoTouch C#库。有没有办法做到这一点?或者反过来,即在MonoTouch中构建并调用Cocos2D函数? 谢谢。
关于未知问题(Google)的回复:
我们确实按照描述的方式操作了。
请参考这个页面快速入门,但是该页面的最后一个代码片段是错误的,因为它省略了“--xcode”参数。 http://monotouch.net/Documentation/XCode
要将您的Mono-EXE / DLL嵌入Objective-C程序中,您需要使用SharpDevelop编译您的源代码,然后使用以下参数运行mtouch:
/Developer/MonoTouch/usr/bin/mtouch --linksdkonly --xcode=output_dir MyMonoAssembly.exe
这仅适用于完整版本的MonoTouch。试用版不允许使用“--xcode”参数。如果要让mtouch保留编译输出中未引用的类,则需要使用“--linksdkonly”参数,否则它会剥离未使用的代码。最近有消息称,有人正在将Cocos2D移植到.NET平台,因此您也可以在.NET上完成整个工作:
Cocos2D最初是一个Python项目,后来被移植到Objective-C,并现在正在积极努力将其引入C#。它尚未完成,但作者正在接受补丁并可能开辟更好的前进之路。
--xcode=DIRECTORY
... 请注意,此选项不受支持,并且可能会在未来版本的 mtouch 中被移除。。我相信苹果前段时间放宽了对解释性语言的限制,只要您将所有将要解释的代码与包一起打包即可。这导致我得出结论,嵌入 Mono 并从 Objective-C/Objective-C++ 调用它是正确的方法。 - ta.speot.is