2016-04-07 9 views
2

私はRealmを初めて使っています。以前はMagicalRecordを使用していました。Realm Swiftでゲッターとセッターをカスタマイズするには?

MagicalRecordでは、インポート機能を処理したり、複数の候補名に対してマッピングキーを設定することもできます。

Realmオブジェクトの一部のプロパティをカスタマイズしたいとします。

私はDynamicObjectが好きなように見えます。しかし、私はそれをどのように使用するか分かりません。

答えて

2

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は使用しないものです。これは、オブジェクトスキーマに対して強力な保証がなく、自分で作成していない非構造化データまたはデータベースを処理する必要があるユースケースを対象としています。

関連する問題