Swift 领域过滤所有具有空值的对象
Swift Realm filter all object with a null value
我有两个对象如下:
class NextAction: Object {
@objc dynamic var title: String = ""
@objc dynamic var notes: String? = ""
@objc dynamic var deadline: Date?
@objc dynamic var deadlineID: String = ""
@objc dynamic var reminder: Date?
@objc dynamic var reminderID: String = ""
@objc dynamic var finished: Bool = false
@objc dynamic var favorite: Bool = false
@objc dynamic var priority: Int = 0
var duration = RealmOptional<Int>()
@objc dynamic var tag: String?
let tags = List<Tag>()
}
class Tag: Object {
@objc dynamic var title: String = ""
let owners = LinkingObjects(fromType: NextAction.self, property: "tags")
}
并不是所有的 NextAction 对象都有标签,但我想过滤掉并显示所有缺少的对象,我试过了
var test = realm.objects(NextAction.self).filter("ANY tags == nil")
但是我得到这个错误
'Invalid value', reason: 'Expected object of type Tag for property 'tags' on object of type 'NextAction', but received: (null)'
你的 tags
不能是 nil
。
如果你想找到tags
为空的对象,你可以这样做。
var test = realm.objects(NextAction.self).filter("ANY tags.@count == 0")
我有两个对象如下:
class NextAction: Object {
@objc dynamic var title: String = ""
@objc dynamic var notes: String? = ""
@objc dynamic var deadline: Date?
@objc dynamic var deadlineID: String = ""
@objc dynamic var reminder: Date?
@objc dynamic var reminderID: String = ""
@objc dynamic var finished: Bool = false
@objc dynamic var favorite: Bool = false
@objc dynamic var priority: Int = 0
var duration = RealmOptional<Int>()
@objc dynamic var tag: String?
let tags = List<Tag>()
}
class Tag: Object {
@objc dynamic var title: String = ""
let owners = LinkingObjects(fromType: NextAction.self, property: "tags")
}
并不是所有的 NextAction 对象都有标签,但我想过滤掉并显示所有缺少的对象,我试过了
var test = realm.objects(NextAction.self).filter("ANY tags == nil")
但是我得到这个错误
'Invalid value', reason: 'Expected object of type Tag for property 'tags' on object of type 'NextAction', but received: (null)'
你的 tags
不能是 nil
。
如果你想找到tags
为空的对象,你可以这样做。
var test = realm.objects(NextAction.self).filter("ANY tags.@count == 0")