我想填充一个tableView。
我的数据在数组
中var myDataArray = [DataEntry]()
DataEntry
- 类型是一种协议,例如:
protocol DataEntry: class {
var idx: Int { get set }
var category: String { get set }
var title: String { get set }
}
我的数据阵列的顺序如下:
idx = 0:category =“Section0”/ title =“Row0”
idx = 1:category =“Section0”/ title =“Row1”
idx = 2:category =“Section0”/ title =“Row2”
idx = 3:category =“Section1”/ title =“Row0”
idx = 4:category =“Section1”/ title =“Row1”
idx = 5:category =“Section2”/ title =“Row0”
idx = 6:category =“Section2”/ title =“Row1”
如何从此dataArray填充tableView? (当然,部分和行需要根据数组的内容来查看)
答案 0 :(得分:1)
从单个数组中填充部分和行不是一个好主意。你已经注意到它过于复杂而且根本不稳定。
唯一可行的情况是,如果您的数组在每个部分中始终具有相同的行数(第1部分总是3个元素,第2部分总是2,等等)。像这样,你总是可以知道你的部分开始的偏移量(0表示0部分,3表示部分1,依此类推)。
当且仅当这是您的情况时,您可以这样做
let offsets = [0,3,5]
let dataEntry = myDataArray[offsets[indexPath.section]+indexPath.row]
但我不能强调这一点: 这绝不是一种良好的做法,应该完全避免。