作为开发人员,我每天都会处理数据。我需要将原始数据处理到对象(NSManagedObject)的常见问题。所以我使用AFNetworking从远程服务器获取数据,并且由于AFNetworking工作,我有一个可以由NSDictionary表示的数据。因此,需要做大量工作的主要事情是将原始数据转换为具体的数据模型。因此,互联网上有许多图书馆可以为我们做这项艰苦的工作:
MagicalRecord MagicalImport
因此,作为一个新的映射,我想知道哪个库最适合我的目的。也许你也可以建议另一个。
答案 0 :(得分:5)
您提到的每个库都有不同的用途:
MagicalRecord - 简化了常见的核心数据操作(获取,插入,删除,设置堆栈等)。 它不处理映射JSON或任何其他格式到核心数据模型。 更正感谢@casademora :MagicalRecord可以使用描述的{{3}步骤处理带有自定义映射的导入}。也就是说,MagicalRecord是一个相当大的库,仅用于此功能。
Mantle - 极大地减少了Objective-C中模型对象的样板(NSCoding
,NSCopying
,-isEqual:
/ -hash
的自动实现,等等。)。包括MTLJSONAdapter
和MTLManagedObjectAdapter
等适配器,用于在模型对象的表示之间进行转换。这听起来像是最适合你想要达到的目标。如果您在MTLJSONSerializing
子类上同时实施MTLManagedObjectSerializing
和MTLModel
协议,则可以将来自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)继承您的类