UpdatePolicy

@frozen
public enum UpdatePolicy : Int

如果在 Realm 中添加或创建的对象具有已存在的主键,该怎么办?

  • 抛出异常。 当没有为add()create()指定策略时,这是默认值。

    此行为与将update: false传递给add()create()相同。

    声明

    Swift

    case error = 1
  • 仅覆盖现有对象中与新值不同的属性。 这会导致变更通知仅报告已更改的属性,并影响同步合并逻辑。

    如果很少有属性发生变化或没有属性发生变化,这将比 .all 更快 并减少必须写入Realm 文件的数据量。 如果所有属性都在更改,则可能比 .all 慢 (但绝不会导致写入更多数据)。

    声明

    Swift

    case modified = 3
  • all

    使用新值覆盖现有对象中的所有属性,即使它们没有更改。 这会导致变更通知将所有属性报告为已更改,并影响同步合并逻辑。

    此行为与将update: true传递给add()create()相同。

    声明

    Swift

    case all = 2