OC中枚舉關(guān)聯(lián)值

相較于oc中的枚舉,swift中的枚舉有個(gè)rawValue,即關(guān)聯(lián)值的存在.這樣方便了枚舉的定義,也使枚舉的定義不在局限于整型.

  • 比如定義一個(gè)string類(lèi)型的枚舉,以及獲取關(guān)聯(lián)值,如下:
enum SwiftEnum: String {
    case red = "redType"
    case white = "whiteType"
    case black = "blackType"
}

let type = SwiftEnum.black
 _ = type.rawValue // "blackType"
  • oc中枚舉定義如下:
typedef NS_ENUM(NSInteger, TestType) {
    TestTypeDefault = 1,
    TestTypeWhite,
    TestTypeBlack
};

能否像swift那樣給每個(gè)枚舉也關(guān)聯(lián)一個(gè)關(guān)聯(lián)值呢.答案當(dāng)然是可以的.語(yǔ)法格式如下:

// 關(guān)聯(lián)一個(gè)NSString類(lèi)型的關(guān)聯(lián)值
NSString *const TestTypeDescription[] = {
    [TestTypeDefault] = @"default",
    [TestTypeWhite] = @"white",
    [TestTypeBlack] = @"black"
};

 TestType type = TestTypeBlack;
 NSString *description = TestTypeDescription[type];
 NSLog(@"%ld, %@", (long)type, description);
// 3, black

tips: 個(gè)人覺(jué)得這個(gè)功能還是挺好的,某些時(shí)候能夠用到,挺方便的.

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

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

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