學(xué)習(xí)移動(dòng)開(kāi)發(fā),編程語(yǔ)言那是必不可少的一個(gè)難關(guān),我們?cè)谥暗奈恼轮芯鸵呀?jīng)知道,android的開(kāi)發(fā)就是使用的是java語(yǔ)言,窗口應(yīng)用程序的開(kāi)發(fā)一般都是使用c#語(yǔ)言開(kāi)發(fā)的,那么ios的開(kāi)發(fā)是使用objective-c語(yǔ)言,它是蘋(píng)果自身的一個(gè)開(kāi)發(fā)語(yǔ)言,本文將會(huì)是帶大家入門(mén)一下該語(yǔ)言,語(yǔ)言在很多時(shí)候它都是相通的,比如你是有c語(yǔ)言基礎(chǔ)的話,那么上手是非??斓?。
1.會(huì)發(fā)現(xiàn)當(dāng)我們建立一個(gè)工程的時(shí)候,我們可以看到.h和.m文件,.h文件里面建立的對(duì)象和方法都是public屬性,.m文件里創(chuàng)建的對(duì)象和方法是private屬性,在.m文件中添加私有的@interface和@end,在這個(gè)里面可以創(chuàng)建一些實(shí)例對(duì)象,這些它們都是私有的。
2.如果是想要?jiǎng)?chuàng)建一個(gè)string類(lèi)型的對(duì)象時(shí):它的寫(xiě)法如下:
@property(strong,nonatomic)nsstring*string;
我們看到以@property打頭,strong/weak定義了該string類(lèi)型對(duì)象的指針,nonatomic它是代表該類(lèi)型是非原子的。
3.當(dāng)我們創(chuàng)建了這樣一個(gè)實(shí)例對(duì)象以后,我們需要使用如下的一個(gè)代碼:
@synthesizestring=_string;
看到這段代碼,它就代表完成了該string類(lèi)型的setter和getter方法,并且是返回實(shí)例的一個(gè)變量。
_string用作它的返回實(shí)例變量。
4.如果是當(dāng)指針指向一個(gè)對(duì)象時(shí),則是可以使用特殊的一個(gè)類(lèi)型:id或者使用靜態(tài)的類(lèi)型(比如:uibutton*),需要知道的是id它是可以代替任何不清楚的類(lèi)型。
5.當(dāng)在調(diào)用objective-c方法的時(shí)候需要使用[];
6.調(diào)用setter或者getter方法的時(shí)候,記得是要用點(diǎn)方法,例如:self.display.text;
7.把log輸出到控制臺(tái)使用nslog()方法;
8.使用一個(gè)常量的nsstring類(lèi)型,要用@“”這樣的格式,比如:@“string”;
9.使用alloc和init來(lái)為你的對(duì)象在內(nèi)存中分配空間。
#import一個(gè)文件的.h文件來(lái)引用到另一個(gè)類(lèi)中。
關(guān)于strongvsweak的介紹
strong:可以是保持這個(gè)對(duì)象一直在堆棧中,直到我的指針不再指向它;
當(dāng)我把我的指針設(shè)為nil的時(shí)候,這樣就不能再去指向它了;
或者當(dāng)我自己已經(jīng)被從堆棧中移出的時(shí)候,這樣也就不能再指向它了
weak:只要有strong類(lèi)型的指針指向它,它就會(huì)一直保持它在堆棧中。
再來(lái)看看關(guān)于nil
如果是當(dāng)一個(gè)對(duì)象的指針沒(méi)有指向任何東西的話,這就是nil;
我們會(huì)看到:idobj=nil;
nsstring*string=nil;
在原始類(lèi)型(int、double)中,它的作用就相當(dāng)于0;
我們是可以給nil發(fā)送消息,看到如果該方法有返回值的話,則返回的就是0;
實(shí)例方法和類(lèi)方法
實(shí)例方法我們是以減號(hào)“-”開(kāi)頭,比如:-(void)getmyname;
類(lèi)方法以加號(hào)“+”開(kāi)頭,比如:+(id)alloc;
實(shí)例方法就是正常的實(shí)例方法,就和普通的方法一樣,類(lèi)方法它是創(chuàng)建和功能方法;
那么實(shí)例方法的調(diào)用方法:[method];
類(lèi)方法的調(diào)用方法:[classmethod];
在實(shí)例方法中:
self:它表示我的實(shí)現(xiàn)(implementation);
super:表示我父類(lèi)的實(shí)現(xiàn);
在類(lèi)方法中:
self:它的意思是表示這個(gè)類(lèi)的類(lèi)方法;
super:它的意思是表示這個(gè)類(lèi)父類(lèi)的類(lèi)方法;
到底何時(shí)才會(huì)使用id
在實(shí)際中,當(dāng)我們可能從另一個(gè)類(lèi)接收到一個(gè)集合的對(duì)象的時(shí)候,而且我們還不確定在發(fā)送過(guò)來(lái)之前這些對(duì)象到底是什么類(lèi)型的時(shí)候,就可以是使用id了。
關(guān)于foundation基本的框架
它是包含了以下的一些內(nèi)容:
nsobject、nsstring、nsmutablestring、nsnumber、nsvalue、nsdata、nsdate、nsarray、nsmutablearray、nsdictionary、nsmutabledictionary等等,foundation框架是基礎(chǔ)框架之一。
關(guān)于propertylist
在這里的propertylist主要是表示一個(gè)集合,包含以下的類(lèi):
nsarray,nsdictionary,nsnumber,nsstring,nsdate,nsdata
nsdictionary它是一個(gè)鍵值對(duì)類(lèi)型;
后來(lái)看看關(guān)于nsuserdefaults
1、它是一個(gè)小型的propertylist存儲(chǔ);
2。也是一個(gè)基礎(chǔ)版的nsdictionary,并且是存在于你的應(yīng)用程序的lunches里。
3、一般用于存儲(chǔ)用戶的偏好設(shè)置這樣小的事件。
4、通過(guò)standarduserdefaults類(lèi)方法來(lái)讀寫(xiě)數(shù)據(jù),
例如:[[nsuserdefaultsstandarduserdefaults]setarray:rvarrayforkey:@“recentlyviewed”];
編寫(xiě)的時(shí)候記得每次寫(xiě)之后要進(jìn)行同步操作:
[[nsuserdefaultsstandarduserdefaults]synchronize];
在文中你會(huì)看到ios的語(yǔ)法是比較難一點(diǎn),初學(xué)的時(shí)候可不要被復(fù)雜的語(yǔ)法給蒙騙了,它的入門(mén)還算是比較簡(jiǎn)單的,因此我們有一定的耐心,以及有研究精神的來(lái)去學(xué)習(xí),上手之后將會(huì)發(fā)現(xiàn)它并不是特別的困難。
溫馨提示
溫馨提示
相關(guān)資訊
關(guān)于厚學(xué)
服務(wù)支持
厚學(xué)網(wǎng)微信號(hào)