質問: realm.objects(realmLog.self).filter("stringItem >= \"\(Condition)\"") ``` > > 'Invalid operator type', reason: 'Operator '>=' not supported for string type' > > > RealmでString項目に対し「○○以降」という抽出をかけるにはどのように記述すればよいのでしょうか。 あるいはRealmで一旦全件抽出を行い、別途抽出結果に対して「○○以降」という条件で読み飛ばすような処理を記述すべきでしょうか。
回答: Stringのプロパティに対して大小比較はできないので、代わりにソートして上から(もしくは下から)使うのが良いと思います。 ``` let realmRec = realm.objects(realmLog.self).sorted(byKeypath: "stringItem") ``` ^ Realmは遅延ロードが自動的に働くので、抽出しなくても実際に使った(アクセスした)ぶんだけのメモリ消費しかありません。 あと、filterの条件をSwiftのString Interpolationを使ってますが、一般的にString Interpolationをクエリの組み立てなど重要な部分に使用するのはバグの元なので、NSPredicateの置き換えを利用して、 ``` .filter("stringItem >= %@", Condition) ``` と書いてください。