gpt4 book ai didi

ios - 从 UITableView - Swift 中删除行的正确方法是什么

转载 作者:搜寻专家 更新时间:2023-11-01 05:53:43 24 4
gpt4 key购买 nike

在 Objective-C 中,我在从 tableView 中删除一行时使用了以下代码,它工作得很好。

Objective-C 示例

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.arrayName removeObjectAtIndex:indexPath.row];
[self.tableName reloadData];
}

我最近进行了一次搜索,想看看这是如何在 Swift 中完成的,我注意到我发现的大部分代码都与我以前使用的不同。

Swift 示例

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete {
numbers.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
}
}

那么现在的问题是,我是做错了还是两种方式都可以?

哪种语言(Swift 或 Objective-C)的正确方法是什么?

最佳答案

Objective-C 代码可以工作,但并不是真正正确的方法。它应该就像您发布的示例 Swift 代码一样。

无论使用何种语言,编辑风格的检查都是可选的。这取决于您的 TableView 支持什么。如果只删除不支持插入,验证编辑样式参数意义不大。当然,检查更安全,以防万一您稍后添加插入。

并且在删除单行时在表上使用 reloadData 效率很低,而且可能是糟糕的用户体验。

tl;dr - Objective-C 代码有效但远非理想。 Swift 代码总体上要好得多。

关于ios - 从 UITableView - Swift 中删除行的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34996804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com