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")