我正在开发一个iPhone应用程序,它在很大程度上依赖于调用ASP.NET one服务来在我们的服务器上的数据库和手机之间来回传输数据。
用户可以处理多个项目。要处理每个项目,一个典型的用例需要5-6个webservice调用。根据3G信号强度,每天下载的数据量和项目的数量,它需要5-6分钟的时间才能让用户看着旋转的轮子。
这是不可接受的,所以,基本上我希望能够异步地使应用程序和服务器端的数据库保持同步。
我该怎么做呢?(我目前根本没有使用CoreData,但我猜我现在可能需要使用它)。
谢谢,
Teja
发布于 2010-07-31 11:17:52
您将需要编写核心数据和restful web服务之间的粘合剂。尝试设计您的数据模型以匹配从web服务返回的数据,这将使粘合更容易管理。如果您能够以JSON格式获取数据,那么粘合起来就更少了。
核心数据是一个对象层次结构,在设计缓存和同步代码时,您需要这样处理它。
更新
表视图与数据无关。当您使用Objective-C和iOS时,您需要从MVC的角度进行思考。因此,您需要考虑观察模型中的增量变化( MVC的UI或视图部分无关紧要)。核心数据很容易让您在保存操作期间做到这一点,您可以获取这些增量并将它们推送回服务器。棘手的问题是如何从服务器端获取变更通知。这是取决于服务器设计的东西。
处理来自服务器的更改应该在后台线程上完成(使用连接到相同NSPersistentStoreCoordinator
的单独NSManagedObjectContext
),并且主线程应该监视来自该后台线程的保存通知,以便它可以根据需要更新UI。
这是一个不平凡的设计,它的复杂性意味着您可能并将会遇到问题,但这些问题取决于您的应用程序和服务器设计。除了使用核心数据使所有这些lot变得更容易这一事实之外,没有其他的银弹。
https://stackoverflow.com/questions/3374286
复制相似问题