领域过滤结果列表中的空对象
Posted
技术标签:
【中文标题】领域过滤结果列表中的空对象【英文标题】:Realm filter empty objects in a list of Results 【发布时间】:2016-11-03 10:21:13 【问题描述】:如果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"
【问题讨论】:
【参考方案1】:.filter("id == " "")
肯定会崩溃,因为您没有逃脱这些引号。它可能需要.filter("id == \"\"")
,但只使用单引号会更好。
由于 Realm 查询符合 NSPredicate
,从 this question 复制答案,如果您想简单地检查 Realm 属性是否为空或 nil,您应该能够使用查询
lazy var declarations: Results<Declaration> =
let realm = try! Realm()
return self.realm.objects(Declaration.self).filter("id != nil AND id != ''")
()
【讨论】:
以上是关于领域过滤结果列表中的空对象的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC 向 JS 发送类对象的问题 - JS 数组中的空对象