Swift:对于cellForRowAtIndexPath

时间:2016-04-11 22:45:18

标签: ios arrays swift uitableview for-loop

我有两个数组:

tasks = [a,b,c]clType = [a,a,b,c,c,c]

数组tasksclType相同,但我使用带有if语句的for循环删除了重复项。

现在我想创建一个包含节的tableview,其中每个节都是tasks数组的一个元素。在本节中,clType数组的元素应存储在右侧部分下。我尝试使用以下for循环配置它:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
    print(clType)
    for index in tasks.indices{
      if indexPath.section == index{
        for index1 in clType.indices{
            if clType[index1] == tasks[index]{
             cell.textLabel?.text = clType[index1] + ": " + taskName[index1] + "  //  " + dateStamp[index1] //Taskname and dateStamp are arrays with a matching index with regard to clType.
            }
        }
    }
}

    return cell
}

我认为我已朝着正确的方向前进,但桌面视图并没有显示正确的方向。我现在看到的是三个部分(=正确),但该部分中的每一行都是相同的。当然,每个部分的字母(a,b,c)都相同,但taskNamedateStamp应该不同。

如何解决这个问题。我知道我在逻辑中遗漏了什么,但是什么?

1 个答案:

答案 0 :(得分:0)

我自己已经解决了这个问题。这是因为对于每一行,循环在第一个可能的索引处找到了与“部分标题”相同的“匹配”。我添加了以下内容:

....
if clType[index1] == tasks[index]{
         cell.textLabel?.text = clType[index1] + ": " + taskName[index1] + "  //  " + dateStamp[index1] //Taskname and dateStamp are arrays with a matching index with regard to clType.
clType[index1] = "" //THIS IS WHAT I ADDED
        }

因此,下次循环数组时,该索引上没有匹配,但是下一个。这就是我想要的。