【发布时间】:2020-03-02 09:45:04
【问题描述】:
我有两个对象如下:
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)'
【问题讨论】:
-
tag和tags是两个不同的属性。您的问题指出 并非所有 NextAction 对象都有标签,但这似乎与您尝试执行的查询无关,因为您在查询中使用了tags。此外,List 属性不能为 nil - 它是一个像数组一样工作的列表,标签计数可以为 0,但不能为 nil。你能澄清一下这个问题吗?