選擇MonoTouch而不是Objective-C開發(fā)iOS應(yīng)用的5大理由
Bartek在他的文章中分享了關(guān)于使用MonoTouch來構(gòu)建iOS應(yīng)用的5大理由:
1. C#有GC。在Objective-C中你需要時(shí)刻關(guān)注retain/release/dealloc方法,但是C#不需要。(注:Objective-C語言本身是有GC的,只是在iOS上沒有開啟。另外,XCode 4.2中加入了ARC,可以自動(dòng)化實(shí)現(xiàn)引用計(jì)數(shù)的內(nèi)存管理,這一條理由不再存在)
2. 在C#中不需要先在頭文件中聲明函數(shù),然后再在.cpp/.m/.mm中實(shí)現(xiàn)。雖然Objective-C中的私有方法不用在.h中聲明,但在實(shí)現(xiàn)文件中一樣需要用interface來聲明。相比而言,Objective-C的anonymous delegate和lamada以及blocks就要方便的多。
3. .Net平臺(tái)有更多的支持庫(kù),比如WCF Services, Web Services, JSON, Sql Lite API等等。
4. .Net有Linq支持,作者認(rèn)為對(duì)于具有復(fù)雜商業(yè)邏輯的app來說,這是一個(gè)殺手級(jí)的特性。
5. .Net有泛型支持。
作者本身在使用Cocos2D和Objective-C開發(fā)游戲,只是建議新的項(xiàng)目可以用Mono Touch嘗試下。
對(duì)于使用Unity作用游戲的來說,腳本是基于Mono的,我也確實(shí)覺得c#寫游戲腳本挺方便,但這更多的源于我對(duì)Objective-C的不熟悉,寫一個(gè)簡(jiǎn)單的plugin也很費(fèi)勁,所以我認(rèn)同C#是個(gè)不錯(cuò)的選擇。
另外,如果是做游戲應(yīng)用的話,Corona & lua也可以作為一種備選方案。