CoreData和ASP.NET Web服务

时间:2010-07-30 18:16:55

标签: iphone web-services core-data

我正在开发一款iPhone应用程序,它非常依赖于调用ASP.NET Webservices来在我们的服务器和手机中的数据库之间来回传输数据。

用户可以使用多个项目。为了处理每个项目,典型的用例需要5-6个webservice调用。根据3G信号强度,下载的数据量和每天的项目数量,只需5-6分钟的时间就可以让用户看到旋转轮。

这是不可接受的,因此,基本上我希望能够异步地保持服务器端的应用程序和数据库同步。

我该怎么做呢? (我现在根本没有使用CoreData,但我猜我现在可能需要使用它。)

谢谢,
Teja公司

1 个答案:

答案 0 :(得分:3)

您需要编写胶水核心数据和您的宁静Web服务。尝试并设计您的数据模型以匹配从Web服务返回的数据,这将使胶水更易于管理。如果你能用JSON获得数据,那么胶水就会更少。

核心数据是一个对象层次结构,在设计缓存和同步代码时,您需要像这样处理它。

更新

tableview与数据无关。当您使用Objective-C和iOS时,您需要考虑MVC。因此,您需要考虑在模型中观察delta变化(MVC的UI或视图部分无关紧要)。 Core Data可以轻松地在保存操作期间执行此操作,您可以获取这些增量并将它们推回到服务器。棘手的问题是如何从更改服务器端的服务器获取通知。这取决于服务器设计。

从服务器处理更改应该在后台线程上完成(单独的NSManagedObjectContext连接到同一个NSPersistentStoreCoordinator)并且主线程应该正在监视来自该后台线程的保存通知,以便它可以根据需要更新UI。

这是一个非常重要的设计,复杂性意味着您可以并且将遇到问题,但这些问题取决于您的应用程序和服务器设计。除了使用Core Data使所有这些很多更容易之外,没有银弹。