关于swift中indexPath.row的一些奇怪之处

时间:2014-12-21 14:24:44

标签: swift

我尝试在swift中测试tableview。

我将此代码编写如下

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 100
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("ChecklistItem") as UITableViewCell
   let label = cell.viewWithTag(1000) as UILabel

    for var i = 0; i < 100 ; i++ {
        label.text = "I am in indexPath.row= \(indexPath.row)"
        println("I am in indexPath.row= \(indexPath.row)")
    }
}

我想显示句子&#34;我在indexPath.row = i&#34;在100行中我得到了我在模拟器中预期的结果

但是当我查看调试区域时,我看到一些非常奇怪的东西,因为在循环内部,我分配了标签,并且我还println() indexPath.row。但是println()在调试区域打印&#34;我在indexPath.row = 0&#34;和&#34;我在indexPath.row = 0&#34;和&#34;我在indexPath.row = 0&#34;像这样。

请查看此链接中的照片。因为我没有足够的声誉来发布图片。 https://www.dropbox.com/s/5ed2plgsb520lgq/Screen%20Shot%202014-12-21%20at%205.14.37%20PM.png?dl=0

https://www.dropbox.com/s/tvguwz51nmfzwgu/Screen%20Shot%202014-12-21%20at%205.14.51%20PM.png?dl=0

1 个答案:

答案 0 :(得分:0)

for循环服务的目的是什么?这是你看到重复打印的原因。 tableView cellForRowAtIndexPath负责循环遍历单元格,因此您根本不必担心循环。