2017-06-21 64 views
0

具有結構是這樣的:訪問枚舉值的結構與if語句

struct ScrollTableViewColumn { 
    var ContentType: ContentType 

    enum ContentType { 
     case String 
     case Numeric(sum: Double, width: CGFloat) 
    } 
} 

我可以與switch語句這樣訪問存儲在內容類型的數字:

switch column.ContentType { 
case .Numeric(let sum, let width): 
    // do something with sum and width… 

哪有我如果聲明與實現類似的事情?

+2

'如果情況.Numeric(讓總和,讓寬度)= {column.ContentType' –

+1

你應該開始屬性名稱和枚舉值以小寫字母。 – vacawama

+0

@NiravD哦,我很接近!謝謝,也許用這個來回答這個問題,我可以接受嗎? –

回答

2

首先,您需要使用小寫字母來創建屬性名稱和枚舉值,因此請像這樣更改您的enum。現在

enum ContentType { 
    case string 
    case numeric(sum: Double, width: CGFloat) 
} 

可以使用if case這種方式。

if case .numeric(let sum, let width) = column.ContentType { 
    print(sum, width) 
} 

編輯:您也可以讓if case喜歡這種方式。

if case let .numeric(sum, width) = column.ContentType { 
    print(sum, width) 
} 
+1

你需要修復.Numeric,你也可以使.ContentType小寫。 – vacawama