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