ios enum NS_ENUM,NS_OPTIONS

一般情況下我們在開發中可以采用C風格的enum 關鍵字定義枚舉類型

enum{   
    UIViewAnimationTransitionNone,  
    UIViewAnimationTransitionFlipFromLeft,  
    UIViewAnimationTransitionFlipFromRight,  
    UIViewAnimationTransitionCurlUp,  
    UIViewAnimationTransitionCurlDown,  
}

位移動操作枚舉定義

enum {  
    UIViewAutoresizingNone                 = 0,  
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,  
    UIViewAutoresizingFlexibleWidth        = 1 << 1,  
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,  
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,  
    UIViewAutoresizingFlexibleHeight       = 1 << 4,  
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5  
};  
typedef NSUInteger UIViewAutoresizing;
//使用NSUInteger的地方可以使用UIViewAutoresizing,//UIViewAutoresizing相當于NSUInteger的一個別名使用
//因此一個UIViewAutoresizing的變量可以直接賦值給NSUInteger  

枚舉值一般是4個字節的int值,在64位系統上是8個字節

typedef NS_ENUM(NSInteger, UIBarButtonItemStyle) {
    UIBarButtonItemStylePlain,// 默認從0開始
    UIBarButtonItemStyleBordered,
    UIBarButtonItemStyleDone,
};
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {  
    UIViewAutoresizingNone                 = 0,  
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,  
    UIViewAutoresizingFlexibleWidth        = 1 << 1,  
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,  
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,  
    UIViewAutoresizingFlexibleHeight       = 1 << 4,  
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5  
}; 

這兩個宏的定義在framework的NSObjCRuntime中

定義

從枚舉定義來看,NS_ENUM和NS_OPTIONS本質是一樣的。NS_ENUM是通用情況,NS_OPTIONS一般用來定義具有位移操作或特點的情況

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,150評論 6 13
  • title: "Swift 中枚舉高級用法及實踐"date: 2015-11-20tags: [APPVENTUR...
    guoshengboy閱讀 2,623評論 0 2
  • 0、背景 在iOS6和Mac OS 10.8以后Apple引入了兩個宏來重新定義這兩個枚舉類型,實際上是將enum...
    Lovell_閱讀 227評論 0 0
  • 作者:Benedikt Terhechte,原文鏈接,原文日期:2015-10-17譯者:小鍋,pmst;校對:s...
    梁杰_numbbbbb閱讀 946評論 1 11
  • 戰狼2,是吳京“認真”的作品。認真,收獲了更好的作品,獲得了更多人的喜愛,并由此獲得了更多的報酬??上蔷╇x...
    sunflower80閱讀 275評論 0 0