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也可以作为一种备选方案。


信息来源:
http://mobile.51cto.com/hot-316759.htm