簡體   English   中英

在 Swift 中將字段添加到枚舉

[英]Add field to enum in Swift

我正在處理 Swift 中的枚舉和子類化。 每個孩子都會帶來自己的新屬性,這些新屬性必須存儲在枚舉中。 這個枚舉在母類中聲明了一些值。 我想為這個枚舉增加一些價值。 我不知道該怎么做,我試過這個沒有結果:

extension MotherClass {
    enum Enumeration {
        case NewProperty
    }
}

將項目添加到enum的唯一方法是將它們直接添加到其聲明中。 您不能通過繼承或任何其他擴展機制向enum添加更多項: enum必須在其聲明時完全定義。

您可以使用協議來解決您的問題

protocol MyProtocol {
    func code() -> Int
}

然后根據您的要求創建多個枚舉

enum MyEnum:Int, MyProtocol {
    func code() -> Int {
        return self.rawValue
    }
    case ok1 = 0
    case other1
}

和另一個枚舉

enum MyEnum2:Int, MyProtocol {
    func code() -> Int {
        return self.rawValue
    }
    case ok2 = 10
    case other2
}

然后在你想獲得枚舉的地方使用 MyProtocol

struct MyStruct {
    var test1: MyProtocol
    var test2: MyProtocol
}

class MyClass {
    var abc = MyStruct(test1: MyEnum1.ok1, MyEnum2.ok2)
    
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM