按照建立模型的建议,您可以这样做:
public struct UsersViewModel {
var users: [User]
private var sections: [UserRole: [User]] {
return [
.admin : users.filter { $0.userRole == .admin },
.superUser : users.filter { $0.userRole == .superUser },
.recruiter : users.filter { $0.userRole == .recruiter }
]
}
var superUserSections: Int { return sections[.superUser]!.count}
var adminSections: Int { return sections[.admin]!.count }
var recruiterSections: Int { return sections[.recruiter]!.count }
}
public func tableView(_ tableView: UITableView, numberOfSections section: Int) -> Int {
return 3 // section 0 is superUser, section 1 is admin, section 2 is recruiter.
}
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch section {
case 0:
return viewModel.superUserSections
case 1:
return viewModel.adminSections
case 2:
return viewModel.recruiterSections
}
}