Ios swift和Objective-C中的CellForRowAtIndexPath
当我遍历tableView中的所有单元格时,在Objective-C中:Ios swift和Objective-C中的CellForRowAtIndexPath,ios,objective-c,swift,uitableview,Ios,Objective C,Swift,Uitableview,当我遍历tableView中的所有单元格时,在Objective-C中: for (int i = 0; i < [_tableView numberOfRowsInSection:0]; i++) { UITableViewCell *cell = [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]]; cell.textLabel.text = @"change te
for (int i = 0; i < [_tableView numberOfRowsInSection:0]; i++) {
UITableViewCell *cell = [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
cell.textLabel.text = @"change text";
}
它崩溃了,并抛出了一个“无展开”错误。似乎只能在Swift中获得可见细胞,而在Objective-C中可以获得所有细胞。如何解释这一点?行为是相同的。只是在目标C中,使用nil对象不会崩溃,而在Swift中则会崩溃 您可以通过检查Objective-C中的单元格是否为零并输入日志来验证这一点。在Swift中,为避免崩溃,请改用可选绑定
例如,如果let cell=tableView.cellFor….则行为相同。只是在目标C中,使用nil对象不会崩溃,而在Swift中则会崩溃 您可以通过检查Objective-C中的单元格是否为零并输入日志来验证这一点。在Swift中,为避免崩溃,请改用可选绑定
例如,如果let cell=tableView.cellFor….
cellforrowatinexpath
仅在当前可见时返回单元格,这就是代码导致崩溃的原因。要遍历所有可见单元格,只需使用
for cell in tableView.visibleCells {
// do something
}
cellforrowatinexpath
仅在当前可见时返回单元格,这就是代码导致崩溃的原因。要遍历所有可见单元格,只需使用
for cell in tableView.visibleCells {
// do something
}
不应显式调用
cellforrowatinexpath
更改单元格文本标签。不应显式调用cellforrowatinexpath
更改单元格文本标签。