2015-11-19 63 views
3

我想創建一個具有公共枚舉(由其他模塊使用)的類,並具有內部字符串原始值(我不希望其他模塊讀取原始值,但我確實想在同一模塊內部讀取它)。在Swift中使用內部原始值的公共枚舉

我知道我可以創建另一個接收枚舉的私有函數並返回一個字符串,但我想避免這種情況。

回答

1

我認爲這是不可能的,我試圖做這樣的第一:

public enum Emotion { 
    case Hate = EmotionInner.Hate, Love = EmotionInner.Love 
} 
internal enum EmotionInner: String { 
    case Hate = "hate", Love = "love" 
} 

但它不會編譯。 你的枚舉至少應該是相同的類型 - 所以如果你想有rawValue()它將在兩個枚舉。你不能讓rawValue()不像finalstatic

順便說一句,也許這不是壞方法來做一個功能呢?