天天看點

【《Objective-C基礎教程 》筆記】(七)OC的關鍵字用意小結

1.  #import

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

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

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

  2. typedef

    用于給一個類型定義新名稱 或 簡化較為複雜的類型聲明。

  3. #define

    用于宏定義預處理。

  4. 定義類

    *.h 用于定義類的頭檔案

    @interface 類 : 父類

    @end

    *.m Object C中的類檔案

    @implementation 類

  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中使用)

轉自http://www.cnblogs.com/qingyuan/p/3647704.html

繼續閱讀