NSPredicateObjectMapper 1.1.0

NSPredicateObjectMapper 1.1.0

Ondrej Pisin 维护。



NSPredicateObjectMapper

在 NSPredicate 之上构建包装器,为 NSManagedObject 提供对象访问权限和请求链式调用。

CI Status Codecov Version License Platform

编写 NSPredicate 的魔法字符串并不理想,我希望像 C# 在 EntityFramework 中一样从 LINQ 获得与 Core Data 相同的体验。Objective 保护类型,限制您可以或可以不操作的类型,在每个请求后建议相关操作选择,并消除输入错误的可能。框架轻量且文档完善。

安装

NSPredicateObjectMapper 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中

pod 'NSPredicateObjectMapper'

用法示例

要运行示例项目,请先克隆存储库,然后在 Example 目录中运行 pod install

让我们有一个名为 Car 的实体,具有 id、品牌、... 属性,我想获取所有以 "s" 开头的品牌缩写的车辆

fetchRequest.predicate = NSPredicate(format: "brand BEGINSWITH[c] 's'")

和对象包装器

fetchRequest.predicate = Car.where(\Car.brand).beginsWith("s", caseInsensitive: true).predicate()

链式请求

fetchRequest.predicate = Car.where(\Car.brand).beginsWith("s").and.where(\Car.brand).endsWith("a").predicate()

需求

Swift >= 5.0

开发路线图

  • CocoaPods 分发
  • 支持子查询 (SUBQUERY(tasks, $task, $task.completionDate != nil AND $task.user = 'Alex') .@count > 0")
  • 支持数组操作 (array[index], array[FIRST], ...)
  • 支持集合查询 (@avg, @count, ...)

作者

Ondřej Pišín, [email protected]

许可

NSPredicateObjectMapper 在 MIT 许可下提供。更多信息请参阅 LICENSE 文件。