ios操作系統(tǒng)是用什么語(yǔ)言寫(xiě)的
對(duì)于蘋(píng)果手機(jī)大家都有所了解,那么對(duì)于ios操作的開(kāi)發(fā)語(yǔ)言大家又知道多少呢?小編為大家整理了ios操作系統(tǒng)的開(kāi)發(fā)語(yǔ)言介紹,希望對(duì)大家有幫助。
ios操作系統(tǒng)的開(kāi)發(fā)語(yǔ)言——Ojective-C
Objective-C是iOS的開(kāi)發(fā)語(yǔ)言。Objective-C是C語(yǔ)言的升級(jí)版。
對(duì)初學(xué)者來(lái)說(shuō),Objective-C存在了很多令人費(fèi)解的寫(xiě)法,實(shí)際上他們是非常優(yōu)雅的。有C語(yǔ)言基礎(chǔ)的程序員在專(zhuān)業(yè)老師的指導(dǎo)下,用1個(gè)月的時(shí)間就可以完全掌握Objective-C這門(mén)編程語(yǔ)言了。
程序員寫(xiě)的最多的就是函數(shù)以及調(diào)用自己寫(xiě)的或者別人寫(xiě)的函數(shù)。本文就從函數(shù)的角度來(lái)看下Objective-C的優(yōu)雅之處。
C#和Objective-C同屬于C語(yǔ)言系列。讓我們先看下C#的函數(shù)定義和調(diào)用,做個(gè)對(duì)比。
C#函數(shù)的定義:
public void doIt(string actorName, string movieName, int timesSeen)
{
Console.Write("{0} is my favorite actor in the movie {1}, I saw it {2} times.", actorName, movieName, timesSeen);
}
函數(shù)的調(diào)用:
Class1 objMovie = new Class1();
objMovie.doIt("萊昂納多·迪卡普里奧", "盜夢(mèng)空間", 120);
再讓.NET程序員看下Objective-C的定義:
- (void) doIt:(NSString *) actorName movieName: (NSString*) value timesSeen: (int)times {
NSLog(@"%@ is my favorite actor in the movie %@, I saw it %i times.",actorName, value, times);
}
如果你第一次看Objective-C,肯定會(huì)琢磨不透上面的代碼,懷疑是不是寫(xiě)錯(cuò)了。
對(duì)于上面這個(gè)函數(shù)的定義:
1、'-'表示這個(gè)函數(shù)是實(shí)例函數(shù)(類(lèi)似非靜態(tài)函數(shù)),'+'表示這個(gè)函數(shù)是類(lèi)函數(shù)(類(lèi)似靜態(tài)函數(shù))
2、(void)表示這個(gè)函數(shù)沒(méi)有返回值。
3、函數(shù)名是'doIt:',而不是'doIt'
4、參數(shù)用空格隔開(kāi)
5、參數(shù)類(lèi)型寫(xiě)在括號(hào)中
6、參數(shù)分內(nèi)部參數(shù)和外部參數(shù),如電影名稱(chēng),內(nèi)部參數(shù)是:value,外部參數(shù)是:movieName
ios100中文網(wǎng)
7、函數(shù)的一個(gè)參數(shù)沒(méi)有外部參數(shù)的名稱(chēng),有內(nèi)部參數(shù)名。如:actorName。
調(diào)用:
[objMovie doIt:@"萊昂納多·迪卡普里奧" movieName:@"盜夢(mèng)空間" timesSeen:120]
從上面代碼可以看出除了第一個(gè)參數(shù),其余的參數(shù)都可以加上外部參數(shù)名稱(chēng)用于區(qū)別。
從上面可以看出Objective-C和C#區(qū)別很大,實(shí)在會(huì)令.NET程序員費(fèi)解。Objective-C函數(shù)設(shè)計(jì)的優(yōu)雅之處在于既有內(nèi)部參數(shù)名又有外部參數(shù)名,可以不用再在內(nèi)部定義變量來(lái)存放函數(shù)的參數(shù)。