【问题标题】:Creating default data for an entity in CoreData (Swift)在 CoreData (Swift) 中为实体创建默认数据
【发布时间】:2023-04-11 01:23:01
【问题描述】:

我希望我的应用程序有一些默认数据,这样用户就不会看到一个空的 tableView。 数据需要在coreData上,然后取出放到tableView上。

目前,用户可以添加、删除和编辑一些数据,但是当他们第一次打开应用程序时没有任何数据,这看起来不太好,可能会使用户感到困惑。

默认数据应该像其他数据一样是可删除和可编辑的,所以不能像存储在数组中的字符串那样是“假数据”。

如何使用 Swift 添加一些默认数据?

【问题讨论】:

  • 核心数据中不能有默认条目,如果您愿意,可以通过编程方式填充核心数据。
  • 或者你可以使用 plist 来存储静态信息。
  • 将数据存储在 .plist 文件中的最佳解决方案

标签: ios swift core-data


【解决方案1】:

cellforRowatindexpath 方法定义表格的单元格。如果你想要一些默认单元格,你可以在那里定义它们。要么创建一些带有错误数据的自定义单元格,要么(这更好)在 tableView 类中定义一个带有错误数据的数组或字典,并使用它来提供表格的委托和数据源方法(numberOfRows/numberOfSections 也需要输入)。基本示例:

CustomUIViewController : UIViewController {
    let defaults : [String] = ["Some", "Data"]
    self.tableView.dataSource = self
    self.tableView.delegate = self

    func cellForRowAtIndexPath() -> UITableViewCell {
       var cell = UITableViewCell()
       if (// check for non-nil data here) {
            // configure cell based on loaded data
       }   else {
           cell.textLabel?.text = defaults[indexPath.row]
       }

        return cell
    }

如果您对此有任何疑问,请告诉我。您的问题含糊不清,所以我的回答保持不变。

【讨论】:

  • 最终,您的问题可能不再是如何查询(您始终可以将信息直接提供给您的 UITableViewDelegate 和 UITableViewDataSource 方法),而更多的是最佳实践查询。硬编码的默认值通常应该存储在 VC 或常量文件中,或其他任何东西中;不要将虚假数据转储到 CoreData,因为您可以简单地检查您的数据库,然后使用硬编码条目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-11
  • 2019-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多