在过去的几个小时里,我一直在摸不着头脑。我正在开发一个系统,随着更多类别的游戏偏好被添加,将来可能会增长,因此我需要设计一个算法来确定哪个单元属于哪个部分。
我的数据模型类似于:
[Games] [Category]
GameA - CategoryC
GameB - CategoryA
GameC - CategoryB
GameD - CategoryA
上述数据模型示例是为了证明游戏没有保证订单,并且存储各自的类别。
到目前为止,我已尝试过以下内容:
let section = indexPath.section
let row = indexPath.row
let offset = tableView.numberOfRowsInSection(section)
let game = gameTypes[(section * offset-1) + row]
我认为上述内容可以起作用:
Section 0 with 2 rows =
Row 0: 0 * 1 + 0 = 0 (OK)
Row 1: 0 * 1 + 1 = 1 (OK)
Section 1 with 3 rows =
Row 0: 1 * 2 + 0 = 2 (OK)
Row 1: 1 * 2 + 1 = 3 (OK)
Row 2: 1 * 2 + 2 = 4 (OK)
Section 2 with 2 rows =
Row 0: 2 * 1 + 0 = 2 (NO, should be 5)
Row 1: 2 * 1 + 1 = 3 (NO, should be 6)
...
上述算法一旦达到第2节就明显存在缺陷,我该如何解决?或者Apple提供了一种更有效的方法来处理这个问题吗?
注意如果某个单元格属于类别X
,则该单元格只能属于某个部分