0

我无法解决以下问题:如何最好地将 JSON 解析为 CoreData?

我已经知道如何解析 JSON 并对其进行反序列化,但是如何将结果输入 CoreData?

目前我有一个LoginViewControllerNSURLRequest用户名和密码发送到网络服务器并接收回声,这是一个 JSON 文件。

我已经用 CoreDataStack设置了AppDelegate.h&AppDelegate.m

我的问题:如何将 NSDictionary (JSON-result) 从LoginViewController数据库中获取?我必须在应用程序委托中调用方法吗?还是我应该将 CoreDataStack 放入LoginViewController

4

2 回答 2

0

Alex,尝试使用Restkit,它在将 JSON 响应直接持久化到 Core Data 方面非常有效
使用 URL 请求获取 JSON,它将整个响应映射到 Core Data。您甚至可以在持久化之前修改有效负载。
借助广泛使用的AFNetworking
在内部处理通信 需要进行一些初始配置,但结果值得付出努力!

于 2013-09-25T09:20:41.827 回答
-1

听起来您真正想要的是如何从解析 JSON 的代码中获取对核心数据堆栈的引用。如果是这种情况,快速而肮脏的方法就是向应用程序委托索取它。这很简单

NSManagedObjectContext *context = [[[UIApplication sharedApplication] delegate] managedObjectContext];

您可能需要对调用#import "AppDelegate.h"结果进行类型转换delegate以使编译器方便使用。

在您的登录视图控制器中设置 Core Data 堆栈几乎肯定是个坏主意——除非那是您唯一使用它的地方(我打赌不是这种情况)。不过,将其设置在应用程序委托以外的其他地方通常是一个好主意。例如,一个新类负责管理堆栈并实现您发现需要的任何通用核心数据相关方法。

如果将数据从您NSDictionary的托管对象中获取确实是问题所在,那么我去年在Cocoa is my Girlfriend上写过这个问题,这个建议仍然有效。

于 2012-10-25T00:03:51.463 回答