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
遅延プロパティなしで複合キーを持つことはまだ可能ですか?