什么是防止Realm中重复对象的最佳方法?

时间:2017-11-29 09:16:05

标签: ios database realm

我有下一个错误:尝试使用现有的主键值“96292”创建“TypeId”类型的对象。 然后我就崩溃了。

1 个答案:

答案 0 :(得分:0)

使用String类型作为主键而不是Int类型,并为每个对象使用UUID,那么您可以避免使用重复的键。

class AModel: Object {
    @objc dynamic var id = UUID().uuidString

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

或者,如果你想使用Int,并且你确定在一秒内只创建一个对象,你可以使用timestamp值来避免这种情况:

class AModel: Object {
    @objc dynamic var id = Date().timeIntervalSince1970

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

同意与@ Tj3n和@ EpicPandaForce的意见,如果它实际上不是新对象,请更新它。