【问题标题】:How can I filter a Realm List by Date Swift NSPredicates如何按日期筛选领域列表 Swift NSPredicates
【发布时间】:2019-07-06 15:47:50
【问题描述】:

我想按日期过滤我的领域列表。过滤器应该按月显示每个列出的项目。我选择了“六月”月份,应用程序应该会显示六月售出的所有商品。

这是我尝试过的代码,但显然没有成功。

let date = Date()
        let format = DateFormatter()
        format.dateFormat = "yyyy-MM-dd"
        let formattedDate = format.string(from: date)
        print(formattedDate)


        let current = Calendar.current
        let componentDate = current.component(.month, from: date)
        print(current.component(.month, from: date))

        let articles = realm.objects(Article.self).filter("artSoldDate = \(componentDate)")
        return articles

【问题讨论】:

  • 这个问题有点不清楚,我看不出你在代码中如何使用“June”(它是什么类型)以及如何知道它是哪一年?
  • 领域对象属性 artSoldDate 是整数吗?这就是 var componentDate 的含义,因此在这种情况下,您将过滤所有 ArtSoldDate 为 7 的 Article.self。

标签: swift xcode filter realm nspredicate


【解决方案1】:

您需要使用日期范围过滤器。您需要在特定日期开始范围并在特定日期结束。例如,

let predicate = NSPredicate(format: "artSoldDate >= %@ AND artSoldDate <= %@", startDate, endDate)

let result = realm.objects(Art.self).filter(predicate)

您的示例似乎试图检查 artSoldDate 何时恰好是某个日期。

【讨论】:

  • 你不需要一个老式的 NSPredicate 。 Realm 有它自己的过滤器,因此您可以使用它进行过滤。它还支持 BETWEEN 运算符。
猜你喜欢
  • 2015-12-18
  • 2010-09-28
  • 2015-10-14
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多