第五條:用枚舉表示狀態(tài)、選項、狀態(tài)碼

簡單枚舉類型
enum EOCConnectionState {
    EOCConnectionStateDisconnected,
    EOCConnectionStateConnecting,
    EOCConnectionStateConnected,
}
typedef enum EOCConnectionState EOCConnectionState;

這樣就可以簡寫的EOCConnectionState來代替完整的enum EOCConnectionState。

指定底層數(shù)據(jù)類型

enum EOCConnectionState : NSInteger {/* ... */}

或者向前聲明:

enum EOCConnectionState : NSInteger;
彼此組合的枚舉

各選項之間可以通過”按位或操作符”。

enum UIViewAutoresizing {
    UIViewAutoresizingNone = 0,
    UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
    UIViewAutoresizingFlexibleWidth = 1 << 1,
    UIViewAutoresizingFlexibleRightMargin = 1 << 2,
    UIViewAutoresizingFlexibleTopMargin = 1 << 3,
    ...
}
Foundation框架輔助宏

這些宏具有向后兼容能力。

typedef NS_ENUM(NSUInteger, EOCConnectionState) {
    EOConnectionStateDisconnected,
    ...
}
typedef NS_OPTIONS(NSUInteger, EOCPermittedDirection) {
    EOCPermittedDirectionUp = 1 << 0,
    ...
}

用枚舉定義定義狀態(tài)機,最好不要有default分支。

switch(_currentState) {
    case EOCConnectionStateDisconnected:
        break;
    case EOCConnectionStateConnecting:
        break;
    case EOCConnectionStateConnected:
        break;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容