我正在使用Realm将所有数据存储在我的应用中。
我有一个商品,其中包含促销ID列表和促销,其中包含父商品属于商店的ID。
我现在过滤现在可用的每个促销,并且我想再添加一个过滤器,以便结果列表每个商店只包含一个促销。
如何完成过滤器,因此每个商店只能获得一个促销活动?
谢谢! // Kim
// EDIT
let startDate: Double = currentDate.timeIntervalSince1970
let endDate: Double = currentDate.timeIntervalSince1970
let parentPredicate = NSPredicate(format: "")
let datePredicate = NSPredicate(format: "SUBQUERY(dates, $d, $d.start <= \(startDate) && $d.end >= \(endDate)).@count > 0")
self.realm?.objects(CSPromotions.self).filter(datePredicate).filter(parentPredicate)
答案 0 :(得分:1)
Realm Swift currently doesn't natively support distinct,所以没有好办法做到这一点。你可以做的是手动构建一个不同值的数组:
let shops = NSMutableSet()
let promotions = self.realm?.objects(CSPromotions.self).filter(datePredicate).filter(parentPredicate).filter {
let id = $0.shop.id
if shops.contains(id) {
return false
}
shops.add(id)
return true
}