我无法理解以下内容: 我如何才能最好地将JSON解析为CoreData?
我已经知道如何解析JSON并对其进行反序列化,但是如何将结果导入CoreData?
目前我有LoginViewController
发送NSURLRequest
用户名& pw到web服务器并接收echo,这是一个JSON文件。
我已经设置了AppDelegate.h
&使用CoreDataStack的AppDelegate.m
我的问题:如何从LoginViewController
获取NSDictionary(JSON-result)到数据库?我是否必须在应用代理中调用方法?或者我应该将CoreDataStack置于LoginViewController
?
答案 0 :(得分:0)
Alex,尝试使用Restkit,它非常有效地将JSON响应直接保存到Core Data中 使用URL请求获取JSON,它将整个响应映射到Core Data。您甚至可以在持久之前修改有效负载 在广泛使用AFNetworking的帮助下,内部处理通信 需要一点初始配置,但结果值得付出努力!
答案 1 :(得分:-1)
听起来你真正想知道的是如何从解析JSON的代码中获取对Core Data堆栈的引用。如果是这种情况,快速而肮脏的方式就是向应用代表询问它。这就像
那样简单NSManagedObjectContext *context = [[[UIApplication sharedApplication] delegate] managedObjectContext];
您可能需要#import "AppDelegate.h"
并对delegate
调用的结果进行类型转换以使编译器保持方便。
在您的登录视图控制器中设置核心数据堆栈几乎肯定是一个坏主意 - 除非这是您使用它的唯一地方(我打赌不是这种情况)。尽管如此,将它设置在除应用代表之外的其他位置通常是个好主意。例如,一个新类,负责管理堆栈,并实现您需要的任何一般核心数据相关方法。
如果将NSDictionary
中的数据导入托管对象实际上是个问题,我去年在Cocoa is my Girlfriend写了这篇文章,这个建议仍然存在。