我想創建一個類,並使用該類作爲我的新枚舉的類型,如下所示。如何在特定類的Swift中聲明枚舉?
class Abc{
var age = 25
var name = "Abhi"
}
enum TestEnum : Abc {
case firstCase
case secondCase
}
我在操場上出現錯誤。
error: raw type 'Abc' is not expressible by any literal
所以我試圖符合RawRepresentable這樣的協議。
extension TestEnum : RawRepresentable{
typealias RawValue = Abc
init?(rawValue:RawValue) {
switch rawValue {
case Abc.age :
self = .firstCase
case Abc.name :
self = .secondCase
}
}
var rawValue : RawValue {
switch self{
case .firstCase :
return Abc.age
case .secondCase :
return Abc.name
}
}
}
我正在這之後以下錯誤:
error: raw type 'Abc' is not expressible by any literal
error: instance member 'age' cannot be used on type 'Abc'
error: instance member 'name' cannot be used on type 'Abc'
什麼是定義類類型的枚舉,沒有得到明確這一點,思想的正確方法。任何人幫助?
'enum'是一個值類型,而'class'是一個引用類型,所以我不認爲這是可能的。 – Lawliet
你想達到什麼目的? –
從文檔:*「原始值可以是字符串,字符或任何整數或浮點數類型」* –