選擇MonoTouch而不是Objective-C開發iOS應用的5大理由
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也可以作為一種備選方案。