OC在C語言基礎上新增的基本資料型別
OC 支援C中的所有的資料型別
C中資料型別:基本 int 構造陣列結構體列舉,指標 int *p1,空型別 viod, typedef
新增的資料型別,BOOL型別可以存YES或者NO中的資料儲存條件表示式的結果
BOOL的本質,是有符號的Char變數
Boolen 型別的變數,可以儲存 true 和flase
儲存條件表示式的結果
Boolen的本質,是有符號的Char變數 typedef unsigned char
區別 BOOL 要多元化別的語言,
class 型別是個類
id 萬能指標
id和void *並非完全一樣。在上面的程式碼中,id是指向struct objc_object的一個指標,這個意思基本上是說,id是一個指向任何一個繼承了Object(或者NSObject)類的物件。需要注意的是id是一個指標,所以你在使用id的時候不需要加星號。比如id
foo=nil定義了一個nil指標,這個指標指向NSObject的一個任意子類。而id *foo=nil則定義了一個指標,這個指標指向另一個指標,被指向的這個指標指向NSObject的一個子類。
nil 與NULL 差不多 nil和C語言的NULL相同,在objc/objc.h中定義。nil表示一個Objctive-C物件,這個物件的指標指向空(沒有東西就是空)。
Nil 首字母大寫的Nil和nil有一點不一樣,Nil定義一個指向空的類(是Class,而不是物件)。SEL 方法選擇器
IMP 從上面的標頭檔案中我們可以看到,IMP定義為 id (*IMP) (id, SEL, …)。這樣說來, IMP是一個指向函式的指標,這個被指向的函式包括id(“self”指標),呼叫的SEL(方法名),再加上一些其他引數。
說白了IMP就是實現方法。
Objective-C 函式指標-------IMP
函式指標
block用來封裝一段程式碼,可以在任何時候執行的程式碼塊