用于映射核心数据的最佳库

时间:2014-02-15 20:56:45

标签: ios core-data magicalrecord github-mantle

作为开发人员,我每天都会处理数据。我需要将原始数据处理到对象(NSManagedObject)的常见问题。所以我使用AFNetworking从远程服务器获取数据,并且由于AFNetworking工作,我有一个可以由NSDictionary表示的数据。因此,需要做大量工作的主要事情是将原始数据转换为具体的数据模型。因此,互联网上有许多图书馆可以为我们做这项艰苦的工作:

MagicalRecord MagicalImport

Mantle

EasyMapping

因此,作为一个新的映射,我想知道哪个库最适合我的目的。也许你也可以建议另一个。

2 个答案:

答案 0 :(得分:5)

您提到的每个库都有不同的用途:

MagicalRecord - 简化了常见的核心数据操作(获取,插入,删除,设置堆栈等)。 它不处理映射JSON或任何其他格式到核心数据模型。 更正感谢@casademora :MagicalRecord可以使用描述的{{3}步骤处理带有自定义映射的导入}。也就是说,MagicalRecord是一个相当大的库,仅用于此功能。

Mantle - 极大地减少了Objective-C中模型对象的样板(NSCodingNSCopying-isEqual: / -hash的自动实现,等等。)。包括MTLJSONAdapterMTLManagedObjectAdapter等适配器,用于在模型对象的表示之间进行转换。这听起来像是最适合你想要达到的目标。如果您在MTLJSONSerializing子类上同时实施MTLManagedObjectSerializingMTLModel协议,则可以将来自Web API的NSDictionary响应(可能是JSON数据)转换为Core Data模型对象。

EasyMapping - 我自己没有使用过这个库,但看起来它提供了Mantle功能的一小部分,纯粹用于在各种模型表示之间进行转换,除了它使用映射模型({{ 1}})而不是子类化基础模型类。使用这个库的缺点是它不像Mantle那样处理任何其他Objective-C模型对象样板。

在提到的3个图书馆中,我认为Mantle可能最适合你描述的内容。另一个选择是使用here,它提供比任何这些库更严格的REST API /核心数据集成,但是使用和调试要困难得多。

答案 1 :(得分:1)

如果您需要关闭Core Data集成,您应该查看RestKit(http://restkit.org) 如果你不这样做 - 我建议使用EasyMapping。它几乎适用于所有情况,非常简单和强大。也不需要从框架类(如Mantle中的MTLModel)继承您的类