2016-12-07 16 views
1

私は永続性のためにRealmを使用しており、読み取り専用としてマークされたプロパティにアクセスすることはできません。私の財産がRealmオブジェクトにないのはなぜですか?

より正確には、ドット表記を使用して印刷できますが、po objectは読み取り専用プロパティのみを表示し、objectsWhereを使用して読み取り専用プロパティにアクセスしようとするとクラッシュします。

私は標準のNSObjectクラスを使ってテストしましたが、問題はなくなりました(明らかにpo)。なぜ、Realmが読み取り専用のプロパティを無視するのか不思議です。

答えて

2

これは間違いありません。プロパティがreadonlyとマークされている場合、Realmはそれを無視し、データベースファイルにバッキングを作成しません。これは、メソッドのignoredPropertiesにメソッドを配置するのと同じ暗黙的な動作です。それらは従来のObjective-Cプロパティとして残されています。 :)

あなたはpo objectコマンドでプロパティが表示されるようにする必要がある場合は、あなたがオブジェクトの- (NSString *)descriptionメソッドをオーバーライドして、オブジェクトが印刷された説明文字列に含まれていることを確認することができます。

readonlyプロパティはRealmによってサポートされていないため、カスタムRealmクエリエンジンを使用するので、objectsWhereでできることはかなり制限されます。他のレルムのプロパティがそのプロパティと一致するかどうかを確認できますが、プロパティ自体を検索対象のアイテムとして使用してクエリを作成することはできません。

関連する問題