【问题标题】:Filter realm objects based on counting list<t>根据计数列表过滤领域对象<t>
【发布时间】:2015-11-16 18:49:35
【问题描述】:

我正在尝试根据匹配对象的数量查询一个类。但是,我不断收到以下错误'Unable to parse the format string "matches.@count &gt; 0"'。我尝试过遵循文档中的代码,但没有帮助。我想要的是获得超过 0 场比赛的所有联赛?

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)

【问题讨论】:

    标签: ios swift realm


    【解决方案1】:

    MATCHES is a reserved wordNSPredicate 语法中。您可以在保留字前面加上 # 来转义它们,如下所示:

    let realm = try! Realm()
    let predicate = NSPredicate(format: "#matches.@count > 0")
    menuArray = realm.objects(League).sorted("id").filter(predicate)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      相关资源
      最近更新 更多