[英]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.