列表计数在 Swift 中的领域子查询

Realm subquery with List count in Swift

我有

class Car : Object
{
     let queries : List<QueryModel> = List<QueryModel>()
}

class QueryModel : Object
{
    let location : String = ""
}

现在我该如何编写 NSPredicate 来获取查询位置等于 'London' 的汽车?

p.s。众所周知,@count 之类的东西在 Swift List class...

上不起作用

p.p.s。我需要它作为谓词,因为这是 RBQFetchedResultsController 知道如何完成工作的唯一方法。

我认为它可以写成 NSPredicate(format: "SUBQUERY(queries, $query, $query.location == %@)", 'London')。但是这样的事情从来没有通过 Realm 的谓词验证:)

你可以写

NSPredicate(format: "ANY queries.location = %@", locationString)

如果你想添加其他的过滤,你可以创建其他的NSPredicate然后使用

NSCompoundPredicate(andPredicateWithSubpredicates: [pred1, pred2])

合并过滤器。

现在,如果你想过滤汽车,你必须准备一个

let request = FetchRequest<Car>(realm: realm, predicate: predicate)

然后就可以使用RBQFetchedResultsController来执行请求了