2016-09-24 20 views
0

我認爲這應該是一個非常簡單的,但我無法弄清楚,因爲我沒有牢固把握泛型或帶參數的枚舉。境界精細糧食通知Swift 3語法

以前我有一個擴展的UITableView處理,看上去像這樣

func updateTableWithChanges<AnyType>(changes:RealmCollectionChange<Results<AnyType>>) { 
    switch changes { 
    case .Initial: 
     self.reloadData() 
    case .Update(let results, let deletions, let insertions, let modifications): 
     beginUpdates() 
     // DO STUFF 
     endUpdates() 
    case .Error(let error): 
     print(error) 
    } 
} 

自從遷移到斯威夫特3語法已經改變了細粒度的通知,我無法弄清楚什麼是應該在去案例的括號。新的語法是

switch changes { 
    case .initial(T): 
     break 
    case .update(T, deletions: [Int], insertions: [Int], modifications: [Int]): 
     break 
    case .error(Error): 
     break 
    } 

什麼是與枚舉案件(特別是T)的論據,我現在如何訪問它們?

回答

1

這顯然是現在要做的。我通過Swift 3文檔挖掘出來並能夠將其整理出來。

switch changes { 
    case .initial(_): 
     reloadData() 
    case let .update(_, deletions, insertions, modifications): 
     beginUpdates() 
     // DO STUFF 
     endUpdates() 
    case let .error(error): 
     print(error) 
} 
+1

如果你不使用的情況下,枚舉的相關值,你仍然應該能夠在斯威夫特3至離開了括號('情況.initial:','情況下.update'等)。 – AustinZ