Object-c的基礎概念(一)

下文爲閱讀筆記。

 

一:Object-c的類基本定義

 

1. 類定義在@interface和@end之間。

2.MyClass:NSObject的方式定義子類和父類。

3.{}中定義類的對象成員

4.-/+定義的是方法,-定義的是對象的方法,+定義的是類的方法。對象是類的一個實例。對於對象的方法,也即是,當使用該方法之前必須先生成該類的一個特定對象。

 

二:強類型和弱類型的引用

 

Object-C的對象可以使用強類型引用和弱類型引用

MyClass *myObject1;  // Strong typing
id       myObject2;  // Weak typing
MyClass * myObject1是一種強類型的定義方法,該定義方法與C++類似。

id myObject2是一種弱類型的定義方法,弱類型的對象主要用於集合類,集合類的對象通常在運行時才知道集合中內部的對象類型定義。弱類型的引用的使用與Object-C的動態類型綁定(Dynamic Typing)息息相關,在Object-C中,每一個對象包含一個成員變量isa,保存着對象屬於哪一個類的類型信息。於是,開發人員能夠在運行時刻知道對象的定義,例如,其父類是什麼,實現了什麼函數等。

 

 

三:函數定義和調用

Object-C的函數定義和調用都比較特別,爲了讓對象執行某個操作,需要向對象發送消息,因此,函數的調用被稱作Object Messaging。其消息的定義是[Receiver Message],前者是接收消息的對象,後者是消息的本身。此處先看看函數的定義:

 

函數的定義由函數的類型標記(Method type identifier)、返回值(return type)、一個或者多個的函數簽名關鍵字(Method signature)、參數的類型和命名信息組成。

 

函數的真實命名由各個級聯的函數簽名關鍵字組成。例如上述函數定義中函數真實的命名是(insertObject:atIndex:)分號隔開參數的聲明。局部的函數簽名關鍵字看起來更像是函數參數的內部命名,真正的參數命名反而在Object Messaging中不出現。例如,上述的函數調用可以寫成

[myArray insertObject:anObject atIndex:0];


再來看一個例子,前一行是函數的定義,後面一行是函數的調用,可以看到後面的調用Ojbect Messaging中,寫的是函數方法簽名的關鍵字

(Method signature keywords)而不是參數命名(parameter names)。由於沒有特別的函數名一項,注意其第一個函數方法簽名關鍵字的

命名看起來就像函數名(changeColorTo)+第一個參數(Red)

- (int)changeColorToRed:(float)red green:(float)green blue:(float)blue;

[myColor changeColorToRed:5.0 green:2.0 blue:6.0];

 上述例子中,實例方法的真是命名是: -changeColorToRed:green:blue:
,冒號隔開的各個參數順序不能更改。
————————————————
版權聲明:本文爲CSDN博主「shallon_luo」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/shallon_luo/article/details/6217663

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章