【问题标题】:Two Table Views, Two Models两个表视图,两个模型
【发布时间】:2017-06-20 07:25:41
【问题描述】:

是否可以有一个数据模型填充 2 个或更多表视图?我目前正在使用 2 个模型并且遇到了一些问题:

class Soccer: Object {
  dynamic var player = ""
  dynamic var highscore = ""
  dynamic var talents = ""
}

class Cricket: Object {
  dynamic var player = ""
  dynamic var highscore = ""
  dynamic var talents = ""
}

1 个 tableview 应该从 Soccer 模型中获取数据,第二个 tableview 应该从 Cricket 模型中获取数据。我正在使用Realm.isEmpty 在应用启动时检查我是否有一个领域,位于我的 AppDelegate 中:

class SetUpData {
static func defaults() {

    let realm = try! Realm()

    guard realm.isEmpty else { return }

    try! realm.write {
        realm.add(Article.self())
    }
  }
}

这会预先填充我的SoccerTableViewController UI。但是我无法使用CricketTableViewController. 获得相同的结果,我在代码中做所有事情,并试图学习使用 Realm Swift 填充多个表视图的最佳方法。

【问题讨论】:

  • 如果需要CricketSoccer 对象,为什么要用Article 对象填充数据库?一旦您向其中添加(任何类型的)对象,Realm.isEmpty 就不会为真,因此您必须在该 guard 语句之后添加 SoccerCricket 对象。或者您可以单独检查您的数据库是否包含两种类型的数据,例如:realm.objects(Cricket.self).count == 0realm.objects(Soccer.self).count == 0
  • 对不起。我是从另一个项目复制和粘贴的。 Article.self() 应该是`Soccer.self()
  • 您可以使用接口或超类来保存足球和板球的具体对象。

标签: ios swift uitableview realm


【解决方案1】:

你是这个意思吗?

class Sport: Object {
  dynamic var player = ""
  dynamic var highscore = ""
  dynamic var talents = ""
}

class Soccer: Sport {
  // ...
}

class Cricket: Sport {
  // ...
}

class SportTableViewController: UIViewController {

    var tableViewDatas: [Sport]?

    // ...
}

class SoccerTableViewController: SportTableViewController {

    // ...
}

class CricketTableViewController: SportTableViewController {

    // ...
}

【讨论】:

  • 这看起来不错!可能。明天检查。晚了。请给我一天时间。我擦了。我现在是凌晨 4:07:0
  • 抱歉耽搁了。这行不通。在 Realm 中,模型类继承自 Object 而不是其他类。有Lists 的功能类似于数组,但我还没有弄清楚如何以某种方式使用它们来完成这项任务。
  • 你试过让Sport继承Object吗?当我更新时
  • 是的。你不能这样做。 Inheritance from a final class.
  • 解决方案 - 原样 为每个 tableview 创建一个新模型并通过它进行过滤和/或排序,包括通知令牌、单元格内容等所有内容。为业余的理解道歉。身体健康!
猜你喜欢
  • 1970-01-01
  • 2014-10-24
  • 2012-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多