Objective-c基礎知識學習筆記,objective-c

來源:互聯網
上載者:User

Objective-c基礎知識學習筆記,objective-c

Objective-c基礎知識學習筆記(一)

        一直有記錄筆記的習慣,但很久沒分享一些東西了,正好上半年開始學習IOS了,現在有空寫點。因開發需要,公司特意為我們配置了幾台新MAC,還讓我們自學了2周時間,就正式進入開發了。現在將自己瞭解的一些基礎知識分享一下。

一、開發工具

        svn管理工具:versions(備忘:個人感覺這個工具不是很好用,經常操作緩慢而且卡頓)、開發工具:xcode

 

二、IOS系統架構

        IOS是基於UNIX核心,Android是基於Linux核心。

        IOS的系統架構分為四個層次,從下到上依次是:核心作業系統層(Core OS layer)、核心服務層(Core Services layer)、媒體層(Media layer)和可觸摸層(Cocoa Touch layer)。

        1、Core OS是位於iOS系統架構最下面的一層,是核心作業系統層,它包括記憶體管理、檔案系統、電源管理以及一些其他的作業系統任務,可以直接和硬體裝置進行互動。作為app開發人員不需要與這一層打交道。

        2、Core Services是核心服務層,可以通過它來訪問iOS的一些服務。

        3、Media是媒體層,通過它我們可以在應用程式中使用各種媒體檔案,進行音頻與視頻的錄製,圖形的繪製,以及製作基礎的動畫效果。 

        4、Cocoa Touch是可觸摸層,這一層為我們的應用程式開發提供了各種有用的架構,並且大部分與使用者介面有關,本質上來說它負責使用者在iOS裝置上的觸摸互動操作。

 

三、重要尾碼說明

        .h尾碼的檔案指標頭檔,描述類、類的資料成分以及類的方法,相當於介面。

        .m尾碼的檔案是實現檔案(源檔案)

        .xib尾碼檔案,是interface builder檔案,存放應用程式的使用者介面(UI)

 

四、基礎文法

        Objective c是物件導向的

1、#import(引入標頭檔)文法

        eg:#import<Foundation/Foundation.sh>

#import"SelfClass.h"

@classSelfClass

         備忘:<>只在系統檔案中尋找,””先在本地尋找,沒找到則到系統檔案中尋找,import可自動防止同一個檔案被匯入多次。執行個體變數類型一般用@class引入,這個可以縮短編譯時間,一般用在interface中,裡面的方法和變數不可用。

2、字串NSString

        @"字串"

3、BOOL布爾類型

        有YES和NO兩個值,備忘:大於0的數不一定是YES。

4、控制台輸出NSLog()

        %@輸出NSString等對象的值

 

五、類的定義與實現

1、@interface用於定義介面類

        介面一般在.h檔案(標頭檔)中定義,用來展示類的構造。

         Eg:定義基於NSObject類的Circle類

@interfaceCircle :NSObject

{

      ShapeColor *fillColor;

}

-(void) draw;

-(void)setFillColor: (ShapeColor *) fillColor secondName:(int) index;

@end

        1)、大括弧內的變數為類的執行個體變數(只在對象的執行個體中有效,所以稱為執行個體變數ivar),後面的為方法聲明。備忘:c函數原型中沒有先行短線。

        2)、方法傳回型別與C函數有相同的類型:標準類型(整型、浮點型、字串)、指標、引用對象和結構體,如果方法使用參數則需要冒號,否則不需要冒號。沒有聲明執行個體變數時,無需大括弧。

        3)、上面多參數方法定義,也可以不需要secondName,但不推薦這樣使用。

        4)、有些方法的聲明是先行加號,這樣的方法為類方法(class method),這個方法屬於類對象(而不是類的執行個體對象),類似於靜態方法,通常用於建立新的執行個體,我們稱這種用來建立新對象的類方法為Factory 方法。

        5)、在物件類型的右邊都有一個*號,所有的物件變數都是指標類型。id類型(任意類型)已經被預定義為指標類型,所以不需要再加一個*號。

2、@implementation

實作類別一般在.m檔案(實現檔案)中實現,實現了介面所聲明的所有方法。

Eg:上面Circle的實作類別

@import “XXX.h”//引入上面定義的標頭檔

@implementationCircle

- (void)setFillColor: (ShapeColor *) c

{

      fillColor = c;

}

 

3、對象的執行個體化

1)、Circle *circle = [Circle new];//不建議這樣使用

2)、Circle *circle = [[Circle alloc]init];//一般這樣初始化

4、方法的調用

[ciclesetFillColor: kRedColor];//備忘中間是空格

5、執行個體變數範圍的指令:

@protected執行個體變數可被該類及任何子類中定義的方法直接存取(預設的情況)。

@private執行個體變數可被定義在該類的方法直接存取,不能被子類定義的方法直接存取。

@public執行個體變數可被該類中定義的方法直接存取,也可被其他類或模組中定義的方法訪問。使得其他方法或函數可以通過(->)來訪問執行個體變數(不推薦用)。

@package 對於64位元影像像,可以在實現該類的映像的任何地方訪問這個執行個體變數。

6、繼承

@interface Circle: NSObject

        不支援多繼承,但Objective-C通過其它特性達到多繼承的效果,例如類別和協議。

7、複合(composition)

        複合就好像音樂中的作曲一樣:將多個組件組合在一起,配合使用,從而得到完整的作品。嚴格來說,只有對象間的組合才能叫複合。

        複合類之間的關係為“has a”。備忘:在Objective-C中,複合是通過包含作為執行個體變數的對象指標實現的。

Eg:汽車有4個輪胎和一台發動機。

@interface  Car:NSObject

{

      Engine *engine;

      Tire *tire[4];

}

備忘:為建立的Car對象分配記憶體時,這些指標將被初始化為nil(零值)

 

六、id

id shapes[2];

shapes[0] = [[Circlealloc]init];

shaoes[1] =[ [Egg alloc]init];

它是指向任意類型對象的指標,相當於範型。

 

七、存取方法名命名

1、setter方法需要在屬性名稱前增加set首碼,eg:setEngine

2、getter方法則是以其返回的屬性名稱來命名,eg:engine不要將get用作getter方法的首碼,例如方法getEngine違反了命名慣例,get這個詞在Cocoa中有特殊的含義,如果get出現在Cocoa的方法名中,就意味著這個方法將你傳的參數作為指標來返回數值。

 



學習objective-c的好書

1. 《Objective-C基礎教程》結合理論知識與樣本程式,全面而系統地講述Objective-C編程的相關內容,包括Objective-C在C的基礎上引入的特性和Cocoa工具包的功能及其中的架構,以及繼承、複合、源檔案組織等眾多重要的物件導向編程技術。附錄中還介紹了如何從其他語言過渡到Objective-C。《Objective-C基礎教程》適合各類開發人員閱讀。

2. 《Cocoa入門-使用Objective-C》助您輕鬆體驗Cocoa開發,不僅是閱讀,還有動手實踐。介紹完Xcode和Interface Builder之後,您將很快接觸到Objective-C的物件導向編程概念,它是建立Mac OS X應用程式的慣用語言。每章中都提供了不同的樣本程式供您構建,通過循序漸進的指導來教給您Cocoa編程的基礎。每章中學到的技巧都作為基礎鋪墊後面章節中介紹的更進階的技巧和概念。

3. 《Objective-C2.0程式設計(原書第2版)》是Objective-C領域的經典著作,對Objective-C進行了系統而全面的闡述,權威性毋庸置疑。全書共分為四大部分:第一部分全面講解了Objective-C語言的基礎知識,包括類、對象、方法、資料類型、運算式、程式結構、繼承、多態、動態類型和動態綁定、函數、數組、結構和指標等;第二部分詳細闡述了Foundation架構,涵蓋數字、字串、集合、檔案操作、記憶體管理、對象複製和歸檔等重要內容;第三部分簡要介紹了Cocoa和iPhone SDK;第四部分是附錄,主要列出了Objective-C的快速參考。
《Objective-C2.0程式設計(原書第2版)》結構合理、內容翔實,簡單易學,既適合程式設計初學者和所有程式員閱讀,也可作為程式設計語言課題的入門教材。

這三本書我都看過實體版的,寫的都不錯,這個語言本身也不太複雜,反而是Cocoa架構需要在大量的實踐中來熟悉和瞭解

這三本書在亞馬遜都有售
 
Objective-c基礎教程的筆記誰有,詳細的另外除了這本書,還有什書適合初學objective-c?

還有一本《Objective-C 2.0程式設計(第2版)》
如果你有其他語言基礎的話,熟悉一下其文法及可進行開發
應儘早接觸熟悉cocoatouch架構,找一個實際項目,在開發過程中會對OC有更深的理解。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.