列表计数在 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来执行请求了
我有
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来执行请求了