测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布上次发布 | 2017年1月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Ryan Mathews 维护。
CoreDataImportKit (CDI) 是一个无装饰的、100% Swift、CoreData 导入器。您可以在您的 CoreData 文件(*.xcdatamodeld
)中轻松定义您的映射(即 json 数据如何与您的 CoreData 属性相关联)。无需额外的代码。
没有额外的 CoreData 辅助功能。如果需要,请查看 MagicalRecord。
CDI 的目标是保持超级精简且易于维护。CDI 希望成为实现导入项目中 Swift 编写的 最佳 框架。
建议通过 CocoaPods 将其添加到您的项目中。只需将以下内容添加到您的 Podfile 中
use_frameworks!
target `YourProject` do
pod 'CoreDataImportKit'
end
在您的 xcdatamodeld
文件中,您需要在实体的用户信息中定义 relatedByAttribute
。这应该是用于唯一标识实体的属性名称。在关系型数据库中,这将是对应的主键。
从字典(例如您 api 的 json 数据)到您的实体属性的默认映射将基于属性名称。如果两者不同,则可以在属性的 User Info 中定义 mappedKeyName
。这也适用于关系。
为了运行导入,您需要两个东西:一个映射和一个导入器。设置完毕后,只需调用 importRepresentation()
来导入一切。以下是 Swift 中的实现方式
let mapping = CDIMapping(entityName: "Company", inManagedObjectContext: localContext)
let cdiImport = CDIImport(externalRepresentation: array, mapping: mapping, context: localContext)
cdiImport.importRepresentation()
在这个例子中,array
是一个字典数组,每个字典都定义了一个 Company
。仅此而已。
可选地,您可以使用此助手
Company.cdiImportFromRepresentation(externalRepresentation: array, inContext: localContext)
请查看维基百科(即将推出)以了解更多详细信息。您可以了解更多关于表示的信息,并学习如何创建自己的导入策略。
认为您有使导入器更快的方法?您有使代码更易于理解的方法?想要帮助改进 ROADMAP?请考虑提出拉取请求。
在编写代码之前,如果您想要讨论所做的更改,请创建一个GitHub问题来讨论潜在的更改。更改是受欢迎的,只需确保它通过测试,并且所有现有的测试仍然通过。
CoreDataImportKit由Ryan Mathews编写,您可以在Twitter上关注我。