【发布时间】:2020-09-23 14:33:57
【问题描述】:
我在项目数组中有一系列锻炼程序(它们的代码在 Objective-C 上),在每个程序中我都有@property (nullable, nonatomic, copy) NSString *scheduleStr; 用于程序持续时间。此属性存储诸如 1 周、2 周、3 周 等值。我需要过滤所有大于 6 周的值。我正在尝试应用 NSPredicate:
predicates.append(NSPredicate(format: "scheduleStr.integerValue >= 6"))
在此之后,我只收到长度为 6-9 周的程序,但不超过 10 周,但可以肯定的是,我在数据库中有几个长度等于 12 周的程序。 如果我试图应用这样的东西:
predicates.append(NSPredicate(format: "scheduleStr.integerValue >= 10"))
我会收到几乎所有的节目。如何获取超过选定值的所有程序?
【问题讨论】:
-
您是在 Core Data 上使用谓词还是数组,它看起来像是一个数组,但您已使用 Core Data 标记了问题,因此不清楚。此外,您将谓词附加到数组中,那么您是否有多个同时使用的谓词(复合谓词)?我尝试使用自定义类和 NSArray 在操场上重现这一点,但谓词工作正常。
-
是的,这是核心数据。我正在请求获得一组合适的程序。
-
您是否单独测试了这个谓词而没有其他任何人的获取请求?
标签: swift core-data nspredicate