2017-05-07 25 views
0

私は領域オブジェクトSongdynamic var title = ""を持っています。私は計算されたプロパティ、sortedNameを書いています。これは "The"や括弧や句読点のような厄介な接頭辞を並べ替えます。私は私のRealmSearchViewControllerはそのsortPropertyとしてsortedNameを使用したいが、これはエラーを投げている:"Property 'sortedName' not found in object of type 'Song'"述語のように計算されたプロパティ、およびRealmSearchViewControllerのsortPropertyとして計算されたプロパティ?

(例えばif results.objects(with: NSPredicate(format: "sortedName BEGINSWITH %@", key)).count > 0など)述語でsortedNameを使用しているとき、私は同じエラーを取得

私はsortedNameが書かれているかどうか、これと同じ動作を取得します私のSongクラスにあるか、それともextension Objectに書かれているか(これは私がやりたいことなので、私はArtistGenreクラスにsortedNameを使うことができます)。

このプロパティは存在し、それ自身で動作します。cell.detailTextLabel?.text = song.sortedName(上記のエラーの原因となる参照を削除した後)を設定すると、正しく表示されます。

これを行う方法はありますか?

+0

Realmオブジェクト定義やsortedNameプロパティにアクセスしようとしているクラスなど、実際のコードをいくつか投稿してください。 –

答えて

1

現時点では、Realmオブジェクトのクエリは、計算されていないRealm-persistedプロパティでのみ実行できます。

レルムにはa feature where it's possible to manually sort Realm objects with a blockを追加する予定がありますが、それにはまだ時間枠はありません。

当面は、ResultsのオブジェクトをSwift配列にコピーして並べ替える方がよいでしょう。パフォーマンスのヒットです(すべてのRealmオブジェクトにアクセスする必要があるため)が、カスタムソートを実行できます。あるいは、代わりに、

並べ替えられた注文をキャッシュするには、別の種類のRealm Objectをデータベースに追加して、そのオブジェクトの順序を制御するListオブジェクトを管理します。

関連する問題