Object C學習筆記24-關鍵字總結

賀臣發表於2014-04-07

  學習Object C也有段時間了,學習的過程中涉及到了很多Object C中的關鍵字,本文總結一下所涉及到的關鍵字以及基本語法。

  1.  #import

    #import <> 從system目錄中查詢標頭檔案,不會檢查當前目錄。

    #import "" 首先在當前目錄中查詢,如果未找到,則在Xcode設定的預處理程式搜尋路徑中查詢檔案。

    #import 指令可以防止標頭檔案被重複包含

  2. typedef

    用於給一個型別定義新名稱 或 簡化較為複雜的型別宣告,可以參考文章<Object C 學習筆記--typedef用法>

  3. #define

    用於巨集定義預處理,可以參考文章<Object C學習筆記22-#define 用法>

  4. 定義類

    *.h 用於定義類的標頭檔案

    @interface 類 : 父類

    @end

    *.m Object C中的類檔案

    @implementation 類

    @end

  5. 類方法定義

    -(返回值型別) 函式名: (型別) value 引數名: (型別) value …. 

    -(int) speak:(int) a andName:(NSString*) address;

    必須使用累的例項來呼叫

  6.全域性方法定義

    +(返回值型別) 函式名: (型別) value 引數名: (型別) value ….

    +(int) speak:(int) a andName:(NSString*) address;

    直接使用類呼叫,不需要例項,相當於靜態方法,和類方法不同之處在於 "+" 和 "-" 的區別

   7. super

    用於子類呼叫父類方法,在過載的時候用的比較多

   8.@selector 

    獲取方法的編號,相當於獲取函式指標,SEL sel1=@selector(eat);

   9. @class

    @class 來告訴編譯器這是一個類,編譯器只需要通過指標來引用它即可,並不需要知道關於這個類的更多資訊,可以用來減少編譯。

  10.@protocol 

    用於定義一個協議,相當於.NET中的介面interface

  11.@property

    用於定義類屬性,比如@property (nonatomic,retain) NSString *name; 相當於實現get和set方法,寫在類的*.h檔案中

  12.@synthesize

    用於實現在標頭檔案中描述實現的類屬性,一般和@property同時使用; 例如:@synthesize name; 這個寫在類的*.m檔案中

  13. id

    id是儲存“指向物件的指標”的型別。宣告為id的變數,可以儲存指向任何Objective-C物件的一個指標

  14. retain

    通知編譯器向分配給此屬性的物件傳送一個保留訊息,這將確保屬性底層的例項變數在使用過程中不會從記憶體中消失。釋放舊物件,將就物件的值賦予新物件,在增加新物件的索引計數1 (在@property中使用)

  15. nonatomic

    不給set方法加鎖,在多執行緒訪問的時候會出現併發問題 (在@property中使用)

  16. assign

    簡單的賦值,不更改索引的計數(在@property中使用)

  17. copy

    建立一個索引計數為1的物件,然後釋放舊物件(在@property中使用)

  18.readonly

    將只生成get方法而不生成set方法(在@property中使用)

  19.readwrite

    預設屬性,將生成不帶額外引數的get和set方法(在@property中使用)

  20.atomic

    相當於set方法加鎖,當多執行緒訪問的時候,只有當一個執行緒訪問結束之後另外一個執行緒才能執行(在@property中使用)

   

        

    

相關文章