2016-02-02 106 views
-4

我的枚舉有一點問題。我試圖聲明如下:布爾值對的枚舉

enum Test : (Bool, Bool) { 
    case Both = (true, true) 
    case None = (false, false) 
} 

我得到這個錯誤:

  • 聲明不能以封閉的表達開始

  • 支護語句塊是未使用的封閉

  • 類型名稱的預期標識符

  • 預期 '(' 枚舉

感謝您的幫助:)

+3

「這是錯誤的」 - 解釋如何這是錯的 - 它創建一個錯誤,它不會產生你所期望的結果,等 –

+0

講述的是Objective-這個問題C還是Swift? – JAL

+0

這是關於swift的 – jsn

回答

0

我認爲你將與OptionSetType更好:

struct MyOptions : OptionSetType { 
    let rawValue: Int 

    init(rawValue: Int) { self.rawValue = rawValue } 
    static let FirstOption = MyOptions(rawValue: 1) 
    static let SecondOption = MyOptions(rawValue: 2) 
    static let ThirdOption = MyOptions(rawValue: 4) 
} 

let opt1: MyOptions = [] 
let opt2: MyOptions = [.FirstOption, .ThirdOption] 

opt1擁有所有標誌關閉。 opt2已打開第一個和第三個標誌。您可以測試一個標誌是由:

if opt2.contains(.FirstOption) { 
    // true 
}