您提到的每个库都有不同的用途:
MagicalRecord - 简化常见的核心数据操作(获取、插入、删除、设置堆栈等)。它不处理将 JSON 或任何其他格式映射到 Core Data 模型。 感谢@casademora 的更正:MagicalRecord 可以使用此处描述的步骤处理带有自定义映射的导入。也就是说,MagicalRecord 是一个相当大的库,仅用于此功能。
Mantle - 大大减少了 Objective-C 中模型对象的样板文件(自动实现NSCoding
, NSCopying
, -isEqual:
/-hash
等)。包括适配器,例如MTLJSONAdapter
和MTLManagedObjectAdapter
用于在模型对象的表示之间进行转换。这听起来最适合您想要实现的目标。如果您在子类上同时实现MTLJSONSerializing
和MTLManagedObjectSerializing
协议,您MTLModel
将能够将NSDictionary
来自 Web API(可能是 JSON 数据)的响应转换为 Core Data 模型对象。
EasyMapping - 我自己没有使用过这个库,但它看起来提供了 Mantle 功能的一小部分,纯粹用于在各种模型表示之间进行转换,除了它使用映射模型 ( EKObjectMapping
) 而不是子类化基本模型类。使用这个库的缺点是它不像 Mantle 那样为你处理任何其他的 Objective-C 模型对象样板。
在提到的 3 个库中,我认为 Mantle 可能最适合您所描述的内容。另一种选择是使用RestKit,它提供了比任何这些库更紧密的 REST API/Core Data 集成,但使用和调试要困难得多。