6

作为一名开发人员,我每天都要处理数据。我需要将原始数据处理到对象(NSManagedObject)的共同点。所以我使用 AFNetworking 从远程服务器获取数据,并且由于 AFNetworking 的工作,我有一个可以由 NSDictionary 表示的数据。因此,可能需要大量工作的主要是将这些原始数据转换为具体的数据模型。所以互联网上有很多图书馆可以为我们完成这项艰巨的工作:

神奇唱片 MagicalImport

地幔

易建图

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

4

2 回答 2

5

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

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

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

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

在提到的 3 个库中,我认为 Mantle 可能最适合您所描述的内容。另一种选择是使用RestKit,它提供了比任何这些库更紧密的 REST API/Core Data 集成,但使用和调试要困难得多。

于 2014-02-15T21:20:56.347 回答
1

如果您需要紧密的核心数据集成,您应该查看 RestKit ( http://restkit.org ) 如果您不需要 - 我建议使用 EasyMapping。对于几乎所有情况,它都非常简单且功能强大。也不需要从框架类中继承您的类(如 Mantle 中的 MTLModel)

于 2014-02-15T21:05:44.000 回答