Bartek在他的文章中分享了关于使用MonoTouch来构建iOS应用的5大理由:
1. C#有GC。在Objective-C中你需要时刻关注retain/release/dealloc方法,但是C#不需要。(注:Objective-C语言本身是有GC的,只是在iOS上没有开启。另外,XCode 4.2中加入了ARC,可以自动化实现引用计数的内存管理,这一条理由不再存在)
2. 在C#中不需要先在头文件中声明函数,然后再在.cpp/.m/.mm中实现。虽然Objective-C中的私有方法不用在.h中声明,但在实现文件中一样需要用interface来声明。相比而言,Objective-C的anonymous delegate和lamada以及blocks就要方便的多。
3. .Net平台有更多的支持库,比如WCF Services, Web Services, JSON, Sql Lite API等等。
4. .Net有Linq支持,作者认为对于具有复杂商业逻辑的app来说,这是一个杀手级的特性。
5. .Net有泛型支持。
作者本身在使用Cocos2D和Objective-C开发游戏,只是建议新的项目可以用Mono Touch尝试下。
对于使用Unity作用游戏的来说,脚本是基于Mono的,我也确实觉得c#写游戏脚本挺方便,但这更多的源于我对Objective-C的不熟悉,写一个简单的plugin也很费劲,所以我认同C#是个不错的选择。
另外,如果是做游戏应用的话,Corona & lua也可以作为一种备选方案。