2017-02-13 1 views
0

レルムデータベースからオブジェクトをフィルタリングしようとしています。私は、文字列の属性itemIdForDateOrderを(このようなものになります。11e6-eef3-09306910-baa7-417b3207abf6)を持っていると私は、この属性によってソートに問題が全くない:レルム - 文字列属性よりも大きいオブジェクトをフィルタする

realm.objects(ItemInfo.self).sorted(byKeyPath: "itemIdForDateOrder", ascending: false) 

問題は、私は、この属性によってオブジェクトをフィルタリングしようとしていますし、私が取得したいということですこのパラメータが大きいオブジェクト。

私の述語のパート:

if let item = newerThan { 
    formatString += " AND itemIdForDateOrder > '" + item.itemIdForDateOrder + "'" 
} 

しかし、私はそれを使用したとき、私は例外を取得:

がキャッチされない例外により「無効オペレータタイプ」にアプリを終了、 理由:「演算子」> '文字列型ではサポートされていません'

しかし、ソートで自分の属性をユーザーに割り当てることができる場合、比較は文字列型で機能しています。それでは、この属性でもどのようにフィルタリングできますか?または、私はすべてのオブジェクトを取得し、それらをフィルタリングする必要があります(レルム述語フィルタではありません)。ありがとう

答えて

0

エラーとして、レルムのクエリエンジンは現在、不等式を使用して文字列プロパティをフィルタリングすることをサポートしていません。私はfiling an enhancement request against Realmを提案して、そのようなサポートを追加してから、Realmの外でフィルタリングを実行する(つまり、オブジェクトを配列に集めてから配列をフィルタリングする)ことをお勧めします。

+0

アワーズに感謝します。私はRealmの外でフィルタリングするソリューションを作成しました。レルムとのやり取りがあるかどうかは疑問です。今のところいいえ、私は強化要求を記入します。 –

関連する問題