2015-05-13 41 views
1

爲了使我的代碼更易讀&維護,什麼是在switch語句與Int類型的控制表達式中使用的標籤,而不是硬編碼Int S表示case標籤的最佳方式是什麼?斯威夫特定製的UITableViewController:switch語句的case標籤部分枚舉

例如,在我的SettingsTableViewController,我試過

enum Section : Int { 
    case Phone 
    case LogOut 
    case DeleteAccount 
} 

– tableView:didSelectRowAtIndexPath:

switch indexPath.section { 
case .Phone: 
    // Push EditPhoneViewController 
case .LogOut: 
    // Log out 
case .DeleteAccount: 
    // Present action-sheet confirmation 
} 

,但得到的編譯錯誤

Enum case pattern cannot match values of the non-enum type 'Int' 

回答

4

在你不能簡單地用開關indexPath.section,因爲它與你的枚舉類型不同。

使用switch Section(rawValue: indexPath.section)!

+0

這將是一個更安全的做'如果讓部分=科(rawValue:indexPath.section)的{開關部分{}}'而不是使用!如果您收到意外的節號,則會崩潰。 – rogueleaderr