iOS中特有的NS ENUM和NS OPTIONS

2021-07-29 18:57:27 字數 1532 閱讀 9001

一般情況下,我們採用c風格的enum關鍵字可以定義列舉型別。

enum uiviewanimationtransition;
//位移操作列舉定義

enum ;

typedef

nsuinteger

uiviewautoresizing;//使用nsuinteger的地方可以使用uiviewautoresizing,//uiviewautoresizing相當於nsuinteger的乙個別名使用。

//因此乙個uiviewautoresizing的變數可以直接賦值給nsuinteger

列舉值一般是4個位元組的int值,在64位系統上是8個位元組。

ns_options一般用來定義位移相關操作的列舉值,我們可以參考uikit.framework的標頭檔案,可以看到大量的列舉定義。

typedef

ns_enum(nsinteger, uiviewanimationtransition) ;

typedef

ns_options(nsuinteger, uiviewautoresizing) ;

這兩個巨集的定義在foundation.framework的nsobjcruntime.h中:

#if (__cplusplus && __cplusplus >= 201103l && (__has_extension(cxx_strong_enums) || __has_feature(objc_fixed_enum))) || (!__cplusplus && __has_feature(objc_fixed_enum))

#define ns_enum(_type, _name) enum

_name

: _type _name; enum

_name

: _type

#if (__cplusplus)

#define ns_options(_type, _name) _type _name; enum

: _type

#else

#define ns_options(_type, _name) enum

_name

: _type _name; enum

_name

: _type

#endif

#else

#define ns_enum(_type, _name) _type _name; enum

#define

ns_options(_type, _name) _type _name; enum

#endif

typedef

ns_enum(nsinteger, uiviewanimationtransition)  uiviewanimationtransition;

等效於上述定義。

參考文件:

1. 2.

mysql特有語法 MySql中特有的語法

limit select fromtablelimit offset,rows rows offset offset on duplicate key update insert low priority delayed high priority ignore into tbl name set ...

flask模板中特有的變數和函式

你可以在自己的模板中訪問一些 flask 缺省內置的函式和物件 config 你可以從模板中直接訪問flask當前的config物件 sqlite request 就是flask中代表當前請求的request物件 0.1session 為flask的session物件 trueg變數 在檢視函式中設...

47 List中特有的方法

集合的體系 collection 單列集合的根介面 list 如果實現了list介面的集合類,該類具備的特點是 有序,可重複 set 如果實現了set幾口的集合類,該類具備的特點 無序,不可重複 list的特有方法 新增add int index,e element 把元素新增到指定索引的位置 ad...