私はRealmを初めて使っています。以前はMagicalRecordを使用していました。Realm Swiftでゲッターとセッターをカスタマイズするには?
MagicalRecordでは、インポート機能を処理したり、複数の候補名に対してマッピングキーを設定することもできます。
Realmオブジェクトの一部のプロパティをカスタマイズしたいとします。
私はDynamicObject
が好きなように見えます。しかし、私はそれをどのように使用するか分かりません。
私はRealmを初めて使っています。以前はMagicalRecordを使用していました。Realm Swiftでゲッターとセッターをカスタマイズするには?
MagicalRecordでは、インポート機能を処理したり、複数の候補名に対してマッピングキーを設定することもできます。
Realmオブジェクトの一部のプロパティをカスタマイズしたいとします。
私はDynamicObject
が好きなように見えます。しかし、私はそれをどのように使用するか分かりません。
Realm Swiftでゲッタとセッタをカスタマイズするには、単純な基礎となるストアドプロパティを定義する必要があります。このプロパティは、次に示すように、カスタムセッタとゲッタを使用して、上に定義した別のプロパティからアクセスできます。
public class Foo : Object {
private dynamic var _bar: Int
public var bar: Int {
get {
return _bar + 1
}
set {
_bar = newValue - 1
}
}
}
なお、使用スウィフトのあなたが期待するようレルムスウィフトとwillSet
またはdidSet
が動作しない場合があります。それらは、アタッチされていないスタンドアロンオブジェクトに対してのみトリガされます。オブジェクトを永続化したり永続オブジェクトを取得すると、永続化された値に直接アクセスするためにすべてのゲッターとセッターがオーバーライドされます。
DynamicObject
は使用しないものです。これは、オブジェクトスキーマに対して強力な保証がなく、自分で作成していない非構造化データまたはデータベースを処理する必要があるユースケースを対象としています。