小编per*_*wyl的帖子

Realm.create会用相同的主键更新对象吗?

我很好奇,如果我打电话realm.create,它会自动更新realm object from the realm results吗?

// Assuming a "Book" with a primary key of `1` already exists.
try! realm.write {
realm.create(Book.self, value: ["id": 1, "price": 9000.0], update:   true)
// the book's `title` property will remain unchanged.
}
Run Code Online (Sandbox Code Playgroud)

目前看起来我需要再次从领域读取以获取最新的对象.如果我错了,请纠正我.

谢谢

realm swift

8
推荐指数
1
解决办法
5530
查看次数

RealmSwift RLMException

我正在使用RealmSwift我的项目.但是,我不确定如何解决以下问题:

RMLException:试图修改写入事务以外的对象-调用beginWriteTransaction上的RLMRealm实例第一

抛出.

任何人都有任何线索?

import RealmSwift

func createOrUpdateMachineInRealm(machine: Machine){

    let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT

    dispatch_async(dispatch_get_global_queue(priority, 0)) {
        // do some task
        let realm = Realm()

        realm.beginWrite()

        realm.write{
            realm.add(machine, update: true)
        }

        realm.commitWrite()

        dispatch_async(dispatch_get_main_queue()) {
            // update some UI
            actionDelegate?.operationCompleted(true)
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

解决方案:我也传入机器的参数并将它们分配给realm.write()中的机器

 func createOrUpdateMachineInRealm(machine: Machine, name: String){

    let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT

    dispatch_async(dispatch_get_global_queue(priority, 0)) {
        // do some task
        let realm = Realm()

        realm.write{
            machine.name = name
            realm.add(machine, update: true)
        }
     }

 }
Run Code Online (Sandbox Code Playgroud)

realm swift xcode6.3

7
推荐指数
2
解决办法
7017
查看次数

在迁移期间无法将"RealmSwift.DynamicObject"类型的值转换为MyCustomObject

期间RealmSwift migration,我想从中迁移dynamic var customObject: CustomObjectlet customObjectList = List<CustomObject>().CustomObject是的类型Object

这是迁移中的一大块代码

let newList = List<CustomObject>()
if oldObject!["customObject"] != nil {

   print(oldObject!["customObject"])                  
   var obj = oldObject!["customObject"]
   var result: CustomObject = obj as! CustomObject //Crash
   farList.append(result)
}

newObject!["customObjectList"] = newList
Run Code Online (Sandbox Code Playgroud)

无法将'RealmSwift.DynamicObject'(0x1015c82d0)类型的值转换为'AppName.CustomObject'(0x1006e5550).

我如何实现我想要的?目前我能想到的是创建一个CustomObject并手动为其分配值.

编辑1

我想将一个primaryKey添加到CustomObject.我一直收到重复的主键错误,我很确定分配的密钥是唯一的.

致命错误:'试试!' 表达式意外地引发了错误:Error Domain = io.realm Code = 0"主键属性'resultKey'在迁移后具有重复值."

 migration.deleteData(CustomObject.className())

 if oldObject!["customObject"] != nil {
          let oldSubFar = oldObject!["customObject"] as! MigrationObject
          var newFarDict = oldSubFar.dictionaryWithValuesForKeys(["firstName","secondName"])
          newFarDict["resultKey"] = NSUUID().UUIDString + "v1"


          let newSubFar …
Run Code Online (Sandbox Code Playgroud)

realm realm-migration xcode7 swift2

3
推荐指数
1
解决办法
1118
查看次数

标签 统计

realm ×3

swift ×2

realm-migration ×1

swift2 ×1

xcode6.3 ×1

xcode7 ×1