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

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

MagicalRecord MagicalImport

Mantle

EasyMapping

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

解决方法

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

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

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

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

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...