swift 4领域过滤子对象取决于parentname

时间:2018-06-10 08:34:08

标签: swift realm

我有两个类,并使用realm for swift 4

class ProjectTimeInterval : Object {
@objc dynamic var startDate = Date()
@objc dynamic var endDate : Date?
@objc dynamic var desc : String?
@objc dynamic var running : Bool = false
var parentProject = LinkingObjects(fromType: Project.self, property: "intervals")
}


class Project: Object {
@objc dynamic var name = ""
let intervals = List<ProjectTimeInterval>()
}

以某种方式设置领域并尝试获取过滤后的数据,应用程序中断

var intervals = realm.objects(ProjectTimeInterval.self).filter("parentProject.name MATCHES %@", project.name)

出现此错误

***由于未捕获的异常终止应用&#39;无效的谓词&#39;,原因:&#39;包含数组属性的关键路径必须使用汇总操作&#39;

2 个答案:

答案 0 :(得分:0)

好的我自己做了。我需要通过项目获取间隔,所以

var intervals = project.intervals.sorted(byKeyPath: "startDate", ascending: true)
像这样

答案 1 :(得分:0)

你需要先获取parentProject.name,如果没有设置,那就是你得到错误的地方尝试

if let parentName = parentProject.name {
      var intervals = parentName.intervals.sorted(byKeyPath: "startDate", ascending: true) 
 }

如果这样做没有帮助,那就显示你的视图控制器,你可以在哪里获取你的领域。