初學者必備:Objective-C學習文檔

來源:互聯網
上載者:User

Objective-C學習文檔是本文要介紹的內容,主要介紹的有資料類型、記憶體的管理,對象,協議等一些內容,具體內容,來看本文詳解。

一.資料類型

1、NSRange

 
  1. typedef struct _NSRange {  
  2. NSUInteger location;  
  3. NSUInteger length;  
  4. } NSRange; 

2、NSPoint,NSSize,NSRect

3、NSString

 
  1. 方法1:類方法)stringWithFormat [NSString stringWithFormat:@""]  
  2. 方法2:length  
  3. 方法3:isEqualToString [執行個體名1 isEqualToString:執行個體名2]  
  4. 方法4:compare 可以帶參數  
  5. 方法5:hasPrefix hasSuffix 

4、NSMutableString

 
  1. 方法1:類方法)stringWithCapacity [NSMutableString stringWithCapacity:表示大小的數字]  
  2. 方法2: appendString  appendFormat  
  3. 方法3: deleteCharactersInRange  rangeOfString 

5、NSArray

 
  1. 方法1:類方法)arrayWithObject 逗號分隔,以nil結束  
  2. 方法2:count  objectAtIndex 

6、NSMutableArray

 
  1. 方法1:類方法)arrayWithCapacity  
  2. 方法2:addObject  removeObjectAtIndex 

7、NSEnumerator

 
  1. 方法1:objectEnumerator   reverseObjectEnumerator  
  2. 方法2:nextObject 

8、NSDictionary

 
  1. 方法1:類方法)dictionaryWithObjectsAndKeys 接收對象和關鍵字交替的儲存的系列,以nil結束  
  2. 方法2:objectForkey 

9、NSMutableDictionary

 
  1. 方法1:類方法)dictionaryWithCapacity  
  2. 方法2:setObject:forKey: removeObjectForKey 

10、NSNumber

用來把基礎資料型別 (Elementary Data Type)封裝成對象的形式

11、NSValue

可以封裝任意值

12、NSNull

 
  1. [NSNull null]表示空 

二、記憶體管理

1.Cocoa記憶體管理規則

1)當你使用new、alloc或copy方法建立一個對象時,該對象的保留計數器值為1。當不再使用該對象時,你要負責向該對象發送一條release或 autorelease訊息用完後或者在dealloc方法中進行統一釋放)。這樣,該對象將在其使用壽命結束時被銷毀。

2)當你通過任何其他方法獲得一個對象時,則假設該對象的保留計數器值為1,而且已經被設定為自動釋放,因此就不需要執行任何操作來確保該對象被清理。

自動釋放池:

 
  1. NSAutoreleasePool *pool;  
  2. pool = [[NSAutoreleasePool alloc] init];  
  3. [pool release]; 

如果你打算在一段時間內擁有該對象使用retain方法),則需保留它並確保在操作完成時釋放它用完後或者在dealloc方法中進行統一釋放)。

3)如果你保留了某個對象,則需要最終)釋放或自動釋放該對象。必須保持retain方法和release方法的使用次數相等。

註:簡單來說,如果使用了alloc,new或copy方法獲得一個對象,則必須進行釋放該對象操作。

三、對象初始化

1.基本知識

1)Objective-C建立對象有兩種方法:

[類名 new]:直接new一個新對象

[[類名 alloc] init]:先為對象分配記憶體空間,再為其初始化

2)在Cocoa中,對象分配和初始化是兩個分離的操作:來自NSObject的類方法alloce為對象分配一塊記憶體並將其清0;執行個體方法init用於獲得一個對象並使其運行

2.便利初始化函數

一個類中有的多個初始化函數,即多個以init開頭的方法。

3.指定初始化函數

類中的某個初始化方法被指派為指定初始化函數,該類的所有初始化方法使用指定初始化函數執行初始化操作。子類使用其超類的指定初始化函數實現超類的初始化。

四、特性property)

1、基礎知識

特性的先行編譯指令為@property,作用是自動聲明屬性的setter和getter方法,因此就不必再有為每個屬性都寫的訪問器方法而產生的冗長代碼了。

即使用先行編譯指令@property通知編譯器為對象的屬性的setter和getter自動產生方法聲明。

同時使用@synthesis先行編譯指令通知編譯器產生對應的訪問器方法。

2、格式

在.H檔案中聲明:@property 類型 變數名;

在.M檔案中實現:@synthesis 變數名;

3、相關的點文法

訪問屬性的setter和getter方法有兩種方式:

1)[對象 屬性方法]:Objective-C特有的正規的[ ]方式

2)對象.屬性方法:和其他語言類似的.方式

4、特行擴充

在特性的聲明裡可以指定屬性的一些要求,比如copy,retain,nonatomic,readwrite預設),readonly等,方式為比如

 
  1. @property retain,nonatomic) 類型 變數; 

五、類別

1、基本知識

類別是為現有的類添加新方法的方式

2、格式

1)聲明:

 
  1. @interface 類名類別名)  
  2. 方法列表  
  3. @end 

2)實現:

 
  1. @implementation 類名類別名)  
  2. 方法實現部分  
  3. @end 

3、類別局限性

1)類別只能添加新方法,無法添加新的執行個體變數

2)如果類別名和原來類中的方法產生名稱衝突,則類別將覆蓋原來的方法,因為類別具有更高的優先順序

4、類別的作用

通過類別的方式,可以將類的實現分散到不同的檔案裡。

六、協議

1、基本知識

Objective-C的協議類似Java裡的介面概念

2、格式

1)聲明:

 
  1. @Protocol 協議名稱  
  2. 方法聲明列表  
  3. @end 

2)對象採用協議:在@interface類聲明的後面添加<協議名稱>

 
  1. @interface 類名 <協議名稱> 

3)對象實現協議:在@implementation裡實現協議的方法

 
  1. @implementation 類名  
  2. 實現協議的方法  
  3. @end 

3、Objective-C 2.0中協議的新特性

1)@optional先行編譯指令:表示可以選擇實現的方法

2)@required先行編譯指令:表示必須強制實現的方法

小結:初學者必備:Objective-C學習文檔的內容介紹完了,希望本文對你有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.