ios - 保持 TableView 之间的数组顺序?

标签 ios arrays swift uitableview

我有 2 个 tableView,我试图在同一结构上显示单独的数组。第二个数组/tableView 只是第一个数组/tableView 的子集;用户可以选择第一个 tableView 的行,并将该对象复制到第二个数组/tableView 上。但是,我希望顺序相同,但我还没有找到使用结构来做到这一点的方法。

struct SomeTasks {
  var name: String
  var listOfPossibleThings: [List]
  var listOfActualThings: [List]
}

struct List {
  var name: String
  var items: [Item]
}

struct Item {
  var name: String
}

用户在 listOfPossibleThings 数组中创建新的 List 对象,并可以将它们移至 listOfActualThings 或从 listOfActualThings 移出。

TableViewOne 使用 someTasks.listOfPossibleThings 来填充其单元格;对于确实移动到 tableViewTwo 的结构,我希望顺序保持不变。使用结构执行此顺序逻辑的最佳实践是什么?谢谢!

最佳答案

管理两个数组的顺序很困难且容易出错,我认为最好只存储一个数组,而每次需要时计算另一个数组。

像这样

struct someTasks {
    var name: String
    var listOfPossibleThings: [List]
    var listOfActualThings: [List] {listOfPossibleThings.filter {$0.isActualThing}}
}

struct List {
    var name: String
    var items: [Item]
    var isActualThing: Bool = false
}

struct Item {
    var name: String
}

var foo = someTasks(name: "foo", listOfPossibleThings: [
    List(name: "list0", items: [Item(name: "item0.0")]),
    List(name: "list1", items: [Item(name: "item0.0"), Item(name: "item0.1")])
])


foo.listOfPossibleThings  // list0, list1
foo.listOfPossibleThings[1].isActualThing = true
foo.listOfActualThings    // list1
foo.listOfPossibleThings[0].isActualThing = true
foo.listOfActualThings    // list0, list1

关于ios - 保持 TableView 之间的数组顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58934053/

相关文章:

ios - Swift:UIScrollView 和 UIControl - 添加目标 | addGestureRecognizer - 未按预期工作

php - Mysql 行放入数组 PHP

ios编程: Keeping user configuration in memory vs storage

ios - 尝试在 Xcode 7/Swift 2 中播放视频时出错

ios - 将值传递给模态 UIViewController - Swift

Java 2D 数组维度

ios - ViewController 未从内存中释放

swift - 调用中的参数缺少参数 'toptext'

ios - 我的企业开发者帐户成员(member)资格到期后,我的企业应用程序会怎样?

C 中的 Char 数组未初始化为空