35270


Realm Swiftにて、以下の様にfilterの条件の文字列を変数で持ち、結果を取得しています。  
ユーザーの指定に応じて`filterString`の中身を変えて様々な検索に対応します。

[code]

    var filterString = "name CONTAINS 'a'"
    var dogs = realm.objects(Dog).filter(filterString)
    
[/code]

このやり方で、何も条件を指定しない場合(全てのオブジェクトを取得したい場合)にも対応したいと思っています。

`filterString = ""`のように空の文字列を指定すると、クラッシュしてしまいます。  
`filterString`が空文字か否かで条件分岐する方法や、特定のプロパティの中身が何であっても一致するような条件を指定する方法を思いつきましたが、もっとスマートに「どんなオブジェクトにも一致する」ということを明示的に指定する方法はありますか。  
何卒よろしくお願いいたします。


CC BY-SA 3.0
2017-06-04T08:53:18.423
35265
2017-06-04T13:14:47.217
23029
question
realm
Realm Swiftのfilterメソッドで全てのオブジェクトを取得できる条件の書き方はありますか。


`TRUEPREDICATE`はすべての要素にマッチします。

> TRUEPREDICATE  
>  A predicate that always evaluates to `TRUE`.

<https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html>

[code]

    realm.objects(Dog.self).filter("TRUEPREDICATE")
    
[/code]

は

[code]

    realm.objects(Dog.self)
    
[/code]

と同じ結果になります。


CC BY-SA 3.0
2017-06-04T13:14:47.217
35270
2017-06-04T13:14:47.217
5519
35265
answer