2016-11-03 6 views
0

idがnilまたは空の場合、レルム結果のリストをフィルタリングします。ここでレルム結果のリスト内の空のオブジェクトをフィルタリングします。

は、結果のデモ一覧です:

{ 
    "id":"1" 
    "name": "first" 
}, 
{ 
    "id":"2" 
    "name": "second" 
}, 
{ 
    "id":"3" 
    "name": "third" 
}, 
{ 
    "id":"" //here it can be empty 
    "name": "" 
}, 
{ 
    "id": nil // here it can be nil 
    "name": nil 
} 

私はこのようなIDを使用してフィルタリングしてみたが、それはクラッシュ:

lazy var declarations: Results<Declaration> = { 
     let realm = try! Realm() 
     return self.realm.objects(Declaration.self).filter("id == " "") 
    }() 

ここではモデルです:

import RealmSwift 

public final class Declaration: Object { 
    dynamic var id: String = "" 
    dynamic var name: String = "" 

    override public static func primaryKey() -> String? { 
     return "id" 
    } 
} 

答えて

0

.filter("id == " "")これらの引用符をエスケープしていないため、間違いなくクラッシュします。 .filter("id == \"\"")が必要かもしれませんが、一重引用符を使用する方が良いでしょう。

レルムクエリがthis questionからの回答をコピー、NSPredicateに準拠しているので、あなたがレルムプロパティが空またはnilでない場合は、単純にチェックしたい場合は、あなただけの

lazy var declarations: Results<Declaration> = { 
    let realm = try! Realm() 
    return self.realm.objects(Declaration.self).filter("id != nil AND id != ''") 
}() 
を使用して照会することができるはずです
関連する問題