【问题标题】:Add initial objects to Realm将初始对象添加到领域
【发布时间】:2018-01-05 12:23:06
【问题描述】:

假设我有一个具有唯一标题的 Queue 类,并且可以保存我的另一个类 Item 中的对象列表。

class Queue: Object {
    @objc dynamic var title = ""

    let items = List<Item>()

    override static func primaryKey() -> String? {
        return "title"
    }
}

我希望从应用程序安装到数据库中时拥有n(可能是 3-5 个)实例Queue,因此我可以随时访问它们以将一些Items 添加到物品清单。有没有办法在应用程序首次启动时创建这些队列并将它们保存到数据库中一次,我应该在代码中的确切位置执行它?

【问题讨论】:

  • 用户重装应用时是否也需要处理?
  • 好吧,当应用程序被卸载时,用户添加到列表中的数据可以被删除(我相信这是正常行为),但是当用户重新安装时必须再次创建空队列应用程序。
  • 在这种情况下,@pacification 的解决方案对您来说就足够了。你试过了吗?
  • 它正在工作!我在我的AppDelegate 应用程序didFinishLaunchingWithOptions 中实现了@pacification 建议的solotion。

标签: ios swift database realm


【解决方案1】:

您可以在应用开始时的某处查看您现在拥有多少 Queues:

let realm = try! Realm()

if realm.objects(Queue.self).isEmpty {
   // no items, so you should create n items 
}

【讨论】:

    【解决方案2】:

    为领域添加新对象

    class Task : Object {
        @objc dynamic var id : Int = 0
        @objc dynamic var name = ""
        @objc dynamic var phone = ""
        @objc dynamic var address = ""
    }
    @IBAction func buttonSave(_ sender: Any) {
            let realm  = try! Realm()
            let user = Task()
            user.id = 0
            user.name = (txtName.text! as NSString) as String
            user.phone = (txtPhone.text! as NSString) as String
            user.address = (txtAddress.text! as NSString) as String
            try! realm.write {
                realm.add(user)
                print("user:",user.name)
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      相关资源
      最近更新 更多