2010-08-25 52 views
0

我正在编写一个应用程序,用于与json中的Web服务进行通信。我很想缓存来自此服务的数据,以便用户在获取更新的数据时始终可以显示缓存的数据。如何与JSON和Core Data中的Web服务进行通信?

我已经看过一个小项目;核心资源是核心数据上的一层。它从JSON转换为数据对象,看起来非常有前途。由于这个项目没有大型社区或进一步发展的高级进展,我不确定它是否适合我。

有谁知道类似的项目?还是应该让我的自己只有一个JSON库和核心数据?

回答

0

将JSON转换为Core Data并向后转换是很简单的。我实际上在Stack Overflow上发布了一个答案,可以解决这个问题。

JSON and Core Data on the iPhone

除此之外,使用NSURLConnection的推和拉的数据是你真正需要的。这个“库”似乎是一个额外的不必要的复杂性。

+0

我会为此解决方案,我认为你是对的。 – Andi 2010-08-27 16:12:21

+0

我试过你的实现,我不同意它不需要用于JSON和Core Data对象之间的映射的框架/库。我可能误解了一些东西。我做了很多工作来使你的实现符合我的要求。你的实现不关心对象是否已经存在,应该被删除,修改或创建。我想我会做很多可以普遍使用的逻辑。你的代码是一个很好的起点,但远不是我所需要的。 – Andi 2010-08-30 21:58:40

+0

我作为例子发布在答案中的代码就是这样一个例子。这不是解决您的特定需求的下降。它展示了KVC的强大功能,可以轻松实现JSON和Core Data之间的递归转换。框架/库是没有用的,因为你的数据对你的应用程序来说是唯一的,而且通用的解决方案几乎肯定会过于复杂和/或效率低下。根据实例编写你自己的实现,你将学到更多关于该语言的知识。 – 2010-08-31 00:34:54

0

一个想法可能是使用支持在URL级别缓存的常规iPhone URL加载系统的NSURLConnection的URL缓存。这将特别适用于RESTful网络服务。您可以使用API​​的内置缓存或实施您自己的聊天策略。 (请参阅here)如果您不想保留缓存,则不需要CoreData。

+0

我想持久保存我的对象,以便用户可以在离线模式下使用所有先前加载的数据。我一直在寻找一个Google类GDataHTTPFetcher,它支持内存缓存,支持最后修改的HTTP头。我想为iPhone写一些与磁盘缓存类似的东西,但是即使服务器返回304消息,我也需要处理我的数据。我真的很喜欢那门课,但这不是我想要的。 – Andi 2010-08-30 22:06:38

+0

正确的建议方法只是意味着非持续使用。在这种情况下,CoreData是完美的选择 – Chris 2010-09-01 00:27:20

相关问题