根据计数列表筛选领域对象<t>
Filter realm objects based on counting list<t>
我正在尝试根据匹配对象的数量查询 class。但是,我不断收到以下错误 'Unable to parse the format string "matches.@count > 0"'
。我试过遵循文档中的代码,但没有帮助。我想要的是获得所有联赛,其中有超过0场比赛?
Class
class League:Object {
dynamic var id: Int = 0
dynamic var name: String? = ""
var matches = List<Match>()
override class func primaryKey() -> String {
return "id"
}
}
class Match:Object {
dynamic var matchId: Int = 0
dynamic var date: NSDate = NSDate()
dynamic var homeName: String? = ""
dynamic var awayName: String? = ""
dynamic var homeAcro: String? = ""
dynamic var awayAcro: String? = ""
dynamic var awayScore: Int = 0
dynamic var homeScore: Int = 0
dynamic var leagueName: String? = ""
dynamic var homeLogo: NSData = NSData()
dynamic var awayLogo: NSData = NSData()
override class func primaryKey() -> String {
return "matchId"
}
}
试过代码
let realm = try! Realm()
let predicate = NSPredicate(format: "matches.@count > 0")
menuArray = realm.objects(League).sorted("id").filter(predicate)
MATCHES
is a reserved word 在 NSPredicate
语法中。您可以在保留字前加上 #
来转义它们,如下所示:
let realm = try! Realm()
let predicate = NSPredicate(format: "#matches.@count > 0")
menuArray = realm.objects(League).sorted("id").filter(predicate)
我正在尝试根据匹配对象的数量查询 class。但是,我不断收到以下错误 'Unable to parse the format string "matches.@count > 0"'
。我试过遵循文档中的代码,但没有帮助。我想要的是获得所有联赛,其中有超过0场比赛?
Class
class League:Object {
dynamic var id: Int = 0
dynamic var name: String? = ""
var matches = List<Match>()
override class func primaryKey() -> String {
return "id"
}
}
class Match:Object {
dynamic var matchId: Int = 0
dynamic var date: NSDate = NSDate()
dynamic var homeName: String? = ""
dynamic var awayName: String? = ""
dynamic var homeAcro: String? = ""
dynamic var awayAcro: String? = ""
dynamic var awayScore: Int = 0
dynamic var homeScore: Int = 0
dynamic var leagueName: String? = ""
dynamic var homeLogo: NSData = NSData()
dynamic var awayLogo: NSData = NSData()
override class func primaryKey() -> String {
return "matchId"
}
}
试过代码
let realm = try! Realm()
let predicate = NSPredicate(format: "matches.@count > 0")
menuArray = realm.objects(League).sorted("id").filter(predicate)
MATCHES
is a reserved word 在 NSPredicate
语法中。您可以在保留字前加上 #
来转义它们,如下所示:
let realm = try! Realm()
let predicate = NSPredicate(format: "#matches.@count > 0")
menuArray = realm.objects(League).sorted("id").filter(predicate)