3

Swift で複合主キーを持つ Realm を使用するためのこの優れたソリューションを見つけました: https://github.com/realm/realm-cocoa/issues/1192

public final class Card: Object {
  public dynamic var id = 0 {
      didSet {
          compoundKey = compoundKeyValue()
      }
  }
  public dynamic var type = "" {
      didSet {
          compoundKey = compoundKeyValue()
      }
  }
  public dynamic lazy var compoundKey: String = self.compoundKeyValue()
  public override static func primaryKey() -> String? {
      return "compoundKey"
  }

  private func compoundKeyValue() -> String {
      return "\(id)-\(type)"
  }
}

しかし、レルムが遅延プロパティをサポートしていないことがわかりました。私の場合、次のエラーが表示されます。

例外 NSException * 名前: "RLMException" - 理由: "Lazy 管理プロパティ 'compoundKey' は Realm Swift オブジェクト クラスでは許可されていません。プロパティを無視されたプロパティ リストに追加するか、非遅延にしてください。" 0x00007f8a05108060

遅延プロパティなしで複合キーを持つことはまだ可能ですか?

4

1 に答える 1