6
考慮兩個斯威夫特枚舉:爲什麼@objc枚舉與純粹的Swift枚舉有不同的描述?
enum Foo: Int {
case bar
}
@objc enum Baz: Int {
case qux
}
如果我每個print
case
這些枚舉的,我希望同樣的結果。相反,我看到一些意外:
print(Foo.bar) // "bar\n"
print(Baz.qux) // "Baz\n"
爲什麼印刷@objc
枚舉的情況下打印枚舉名字,在打印純斯威夫特枚舉的case
打印的實際case
名字?添加@objc
是否更改枚舉的調試描述?
Swift枚舉攜帶比ObjC更多的元數據(case標籤)。 ObjC枚舉只是一系列的int,並沒有真正瞭解它們所代表的案例標籤。你可以通過打開枚舉來解決它,並返回不同的字符串:http://stackoverflow.com/a/14651888/3141234 – Alexander
@Alexander非常感謝你!這終於對我產生了某種意義。我以爲我瘋了,因爲我見過的所有帖子都表明,在Swift中打印枚舉會顯示案例,儘管我清楚地看到了一個不是這種情況的例子(CBCentralManagerState)。謝謝! – vegather