自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

初學(xué)者必備:Objective-C學(xué)習(xí)文檔

移動(dòng)開發(fā) iOS
Objective-C學(xué)習(xí)文檔是本文要介紹的內(nèi)容,主要介紹的有數(shù)據(jù)類型、內(nèi)存的管理,對(duì)象,協(xié)議等一些內(nèi)容,具體內(nèi)容,來看本文詳解。

Objective-C學(xué)習(xí)文檔是本文要介紹的內(nèi)容,主要介紹的有數(shù)據(jù)類型、內(nèi)存的管理,對(duì)象,協(xié)議等一些內(nèi)容,具體內(nèi)容,來看本文詳解。

一.?dāng)?shù)據(jù)類型

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 [實(shí)例名1 isEqualToString:實(shí)例名2]  
  4. 方法4:compare 可以帶參數(shù)  
  5. 方法5:hasPrefix hasSuffix 

4、NSMutableString

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

5、NSArray

  1. 方法1:(類方法)arrayWithObject 逗號(hào)分隔,以nil結(jié)束  
  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 接收對(duì)象和關(guān)鍵字交替的存儲(chǔ)的系列,以nil結(jié)束  
  2. 方法2:objectForkey 

9、NSMutableDictionary

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

10、NSNumber

用來把基本數(shù)據(jù)類型包裝成對(duì)象的形式

11、NSValue

可以包裝任意值

12、NSNull

  1. [NSNull null]表示空 

二、內(nèi)存管理

1.Cocoa內(nèi)存管理規(guī)則

(1)當(dāng)你使用new、alloc或copy方法創(chuàng)建一個(gè)對(duì)象時(shí),該對(duì)象的保留計(jì)數(shù)器值為1。當(dāng)不再使用該對(duì)象時(shí),你要負(fù)責(zé)向該對(duì)象發(fā)送一條release或 autorelease消息(用完后或者在dealloc方法中進(jìn)行統(tǒng)一釋放)。這樣,該對(duì)象將在其使用壽命結(jié)束時(shí)被銷毀。

(2)當(dāng)你通過任何其他方法獲得一個(gè)對(duì)象時(shí),則假設(shè)該對(duì)象的保留計(jì)數(shù)器值為1,而且已經(jīng)被設(shè)置為自動(dòng)釋放,因此就不需要執(zhí)行任何操作來確保該對(duì)象被清理。

自動(dòng)釋放池:

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

如果你打算在一段時(shí)間內(nèi)擁有該對(duì)象(使用retain方法),則需保留它并確保在操作完成時(shí)釋放它(用完后或者在dealloc方法中進(jìn)行統(tǒng)一釋放)。

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

注:簡(jiǎn)單來說,如果使用了alloc,new或copy方法獲得一個(gè)對(duì)象,則必須進(jìn)行釋放該對(duì)象操作。

三、對(duì)象初始化

1.基本知識(shí)

(1)Objective-C創(chuàng)建對(duì)象有兩種方法:

[類名 new]:直接new一個(gè)新對(duì)象

[[類名 alloc] init]:先為對(duì)象分配內(nèi)存空間,再為其初始化

(2)在Cocoa中,對(duì)象分配和初始化是兩個(gè)分離的操作:來自NSObject的類方法alloce為對(duì)象分配一塊內(nèi)存并將其清0;實(shí)例方法init用于獲得一個(gè)對(duì)象并使其運(yùn)行

2.便利初始化函數(shù)

一個(gè)類中有的多個(gè)初始化函數(shù),即多個(gè)以init開頭的方法。

3.指定初始化函數(shù)

類中的某個(gè)初始化方法被指派為指定初始化函數(shù),該類的所有初始化方法使用指定初始化函數(shù)執(zhí)行初始化操作。子類使用其超類的指定初始化函數(shù)實(shí)現(xiàn)超類的初始化。

四、特性(property)

1、基礎(chǔ)知識(shí)

特性的預(yù)編譯指令為@property,作用是自動(dòng)聲明屬性的setter和getter方法,因此就不必再有為每個(gè)屬性都寫的訪問器方法而產(chǎn)生的冗長(zhǎng)代碼了。

即使用預(yù)編譯指令@property通知編譯器為對(duì)象的屬性的setter和getter自動(dòng)生成方法聲明。

同時(shí)使用@synthesis預(yù)編譯指令通知編譯器生成對(duì)應(yīng)的訪問器方法。

2、格式

在.H文件中聲明:@property 類型 變量名;

在.M文件中實(shí)現(xiàn):@synthesis 變量名;

3、相關(guān)的點(diǎn)語法

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

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

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

4、特行擴(kuò)展

在特性的聲明里可以指定屬性的一些要求,比如copy,retain,nonatomic,readwrite(默認(rèn)),readonly等,方式為比如

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

五、類別

1、基本知識(shí)

類別是為現(xiàn)有的類添加新方法的方式

2、格式

(1)聲明:

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

(2)實(shí)現(xiàn):

  1. @implementation 類名(類別名)  
  2. 方法實(shí)現(xiàn)部分  
  3. @end 

3、類別局限性

(1)類別只能添加新方法,無法添加新的實(shí)例變量

(2)如果類別名和原來類中的方法產(chǎn)生名稱沖突,則類別將覆蓋原來的方法,因?yàn)轭悇e具有更高的優(yōu)先級(jí)

4、類別的作用

通過類別的方式,可以將類的實(shí)現(xiàn)分散到不同的文件里。

六、協(xié)議

1、基本知識(shí)

Objective-C的協(xié)議類似Java里的接口概念

2、格式

(1)聲明:

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

(2)對(duì)象采用協(xié)議:在@interface類聲明的后面添加<協(xié)議名稱>

  1. @interface 類名 <協(xié)議名稱> 

(3)對(duì)象實(shí)現(xiàn)協(xié)議:在@implementation里實(shí)現(xiàn)協(xié)議的方法

  1. @implementation 類名  
  2. 實(shí)現(xiàn)協(xié)議的方法  
  3. @end 

3、Objective-C 2.0中協(xié)議的新特性

(1)@optional預(yù)編譯指令:表示可以選擇實(shí)現(xiàn)的方法

(2)@required預(yù)編譯指令:表示必須強(qiáng)制實(shí)現(xiàn)的方法

小結(jié):初學(xué)者必備:Objective-C學(xué)習(xí)文檔的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2011-08-17 12:03:36

Objective-C

2011-08-05 14:16:47

Objective-C 變量 方法

2011-08-10 19:16:50

Objective-C變量

2011-08-10 19:01:18

Objective-C

2011-08-15 17:06:01

Objective-CNSLog

2011-08-04 16:46:03

Objective-C 聲明

2011-08-22 15:31:35

Objective-C協(xié)議

2011-08-29 15:45:59

Lua函數(shù)

2011-08-01 11:49:05

Objective-C

2011-08-23 14:01:03

LUA

2011-08-24 09:54:05

Lua字符春交互

2011-08-24 17:19:20

Lua源文件

2011-08-11 10:50:08

xcode調(diào)試文件

2011-09-08 10:38:37

Widget

2011-08-10 16:44:56

iPhone代理設(shè)計(jì)模式

2010-05-12 17:36:44

MySQL初學(xué)者

2020-08-16 13:10:46

TensorFlow深度學(xué)習(xí)數(shù)據(jù)集

2020-09-08 19:03:41

Java代碼初學(xué)者

2010-01-15 19:05:42

學(xué)習(xí)C++

2009-09-28 09:45:00

CCNA學(xué)習(xí)經(jīng)驗(yàn)CCNA
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)