Swift结构返回成员

时间:2018-07-20 19:41:48

标签: ios swift swift4

我有一个类似的结构:

struct SectionInfo {
    enum AccountSectionInfo: Int, CaseIterable {
        case accountCreationDate
        case referredBy
        case referralCount
    }
    enum StatisticsSectionInfo: Int, CaseIterable {
        case tasksCompleted
             case pointsScored
    }
  // return AccountSectionInfo for index 0, for 1 return StatisticsSectionInfo
  func section(forIndex index: Int) -> XXX {}
}

我想像这样在TableView中使用它:

cellForRow(at: IndexPath) -> UITableViewCell {
    let section = SectionInfo.section(at: indexPath.section)
    if section == AccountInfoSection.rawValue {

    }
}

在Swift中有可能吗?

1 个答案:

答案 0 :(得分:0)

  

基本上我想拥有一个索引(indexPath.section),并且想要基于索引(行枚举)获取结构的某个成员(枚举)

因此,您的结构旨在用作表视图数据源的模型?那是一个非常糟糕的模型。自然的方式是这样的:

struct Row {
    // properties needed to populate a row
}
struct Section {
    let title : String // or whatever else you need to populate section header
    var rows : [Row]
}
var model : [Section]

现在,您可以获得model[indexPath.section].rows[indexPath.row]的行。