Ios Can';无法从cellForRowAtIndexPath中的上一行获取单元格
我有一个带有一堆自定义TableViewCell的tableView。我有一个按钮,允许用户在tableview的底部添加一个新单元格。我希望此新单元格根据其上方单元格中显示的数据显示一些数据。因此,在我的Ios Can';无法从cellForRowAtIndexPath中的上一行获取单元格,ios,swift,uitableview,Ios,Swift,Uitableview,我有一个带有一堆自定义TableViewCell的tableView。我有一个按钮,允许用户在tableview的底部添加一个新单元格。我希望此新单元格根据其上方单元格中显示的数据显示一些数据。因此,在我的tableView(cellForRowAtIndexPath)delegate方法中,我为前一行调用tableView.cellForRowAtIndexPath,并将结果强制转换到我的自定义单元格。但是,这会导致崩溃 if (indexPath.row > 0) { let
tableView(cellForRowAtIndexPath)
delegate方法中,我为前一行调用tableView.cellForRowAtIndexPath
,并将结果强制转换到我的自定义单元格。但是,这会导致崩溃
if (indexPath.row > 0) {
let previousCell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: indexPath.row - 1, inSection: indexPath.section)) as! myCustomCell
}
有趣的是,如果我不强制演员,它不会崩溃。但是,这对我没有用处,因为我需要强制转换并访问一些只存在于自定义类中的属性。我确信(indexPath.row-1)处的单元格是我自定义类的单元格 如注释中所述,
UITableView.cellforrowatinedexpath(\uindexath:nsindexath)
当索引路径指向当前不在屏幕上的单元格时,返回nil
。另见
您可以在表视图的数据源上调用该方法,而不是在表视图上调用该方法<代码>UITableViewDataSource.tableView(tableView:UITableView,
cellForRowAtIndexPath:nsindepath)是一个必须实现的函数,无论索引路径在屏幕上还是屏幕下,它都应该返回一个正确的单元格
然而,一种更好的方法(同样,如评论中所述)是从数据模型而不是单元格中获取单元格内容。您在哪里尝试这样做,崩溃到底是什么?不要从单元格中提取数据,从模型中获取数据Vladimir,这是有意义的。愚蠢的错误。但是,我仍然很好奇为什么会发生崩溃。@JohnDoe:
cellforrowatinexpath
如果索引路径指向当前不可见的单元格,则返回nil
。