【问题标题】:Copy RLMObject ,Modify and then save复制 RLMObject ,修改后保存
【发布时间】:2016-01-08 20:57:32
【问题描述】:

所以我想要做的是,检索已经保存在 Realm 上的对象,修改一些属性然后再次保存,在数据库中只保留一条记录。

这是我的代码:

获取领域已保存的用户

if let user = User.query() {
   user.latitude = String(latitude)
   user.longitude = String(longitude)
   user.save()
}

用户查询函数,在用户对象内部

static func query() -> User? {
    return User.allObjects().toArray(User.self).first
}

func save() -> User {
    RealmPersister.saveObjects([self])
    return self
}

还有 RealmPersister 类函数

class func saveObjects(objects: [RLMObject]?) {
    autoreleasepool {
        guard let objects = objects where objects.count > 0 else { return }
        do {
            let realm = RealmEncrypted.realm()
            realm.beginWriteTransaction()
            realm.addObjects(objects)
            try realm.commitWriteTransaction()}
        catch {
            print("Realm did not write objects! \(objects)")
        }
    }
}

class func deleteObjects(objects: [RLMObject]?) {
    autoreleasepool {
        guard let objects = objects where objects.count > 0 else { return }
        do {
            let realm = RealmEncrypted.realm()
            realm.beginWriteTransaction()
            realm.deleteObjects(objects)
            try realm.commitWriteTransaction()
        } catch {
            print("Realm did not delete objects! \(objects)")
        }
    }
}

【问题讨论】:

    标签: ios swift realm


    【解决方案1】:

    看来您需要在User 对象上使用主键。这样您就可以通过主键快速检索同一个对象,修改它,然后保存它,而不会产生重复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 2016-12-27
      相关资源
      最近更新 更多