0

我目前正在开发一个从 Web 服务检索和更新数据的应用程序。该应用程序将能够存储多个身份的凭据,以便用户访问 Web 服务。

Web 服务是数据的记录系统,应用程序将能够通过 Web 服务创建、删除、更新和查看对象。核心数据对象仅用于反映服务器上的内容并为离线查看提供一些持久性。我计划在通过 Web 服务或根据用户请求更新对象后,通过刷新在后台更新核心数据实体。

我的问题是:

1)核心数据适合这种用途还是我在自找麻烦?

2) 是否有可能以这样的方式编写应用程序,以便当用户将配置文件切换到新身份时,应用程序会切换持久存储/托管对象上下文,以便新身份在数据方面基本上是旧身份的沙盒. 如果是这样,我将不胜感激一些指示,以帮助我了解如何做到这一点,因为到目前为止我还没有找到任何东西。我已经看到很多关于如何一起使用多个 MOC 和持久存储的参考资料,但没有看到如何完全切换到全新的“配置文件”......

4

1 回答 1

0

1)核心数据适合这种用途还是我在自找麻烦?

这取决于数据的性质以及您计划如何使用它。涉及 Web 服务与这个问题并不真正相关。您不太可能“自找麻烦”,但取决于您具体要做什么,其他选择也可能是好主意。

2) 是否可以以这样的方式编写应用程序,以便当用户将配置文件切换到新身份时,应用程序会切换持久存储/托管对象上下文,以便新身份在数据方面基本上是旧身份的沙盒. 如果是这样,我将不胜感激一些指示,以帮助我了解如何做到这一点,因为到目前为止我还没有找到任何东西。我已经看到很多关于如何一起使用多个 MOC 和持久存储的参考资料,但没有看到如何完全切换到全新的“配置文件”......

当然,您可以拥有任意数量的不同持久存储。切换时,您需要放弃对从一个商店加载的任何内容的所有引用,然后再切换到新商店。这意味着每一个NSManagedObject,每一个,每NSManagedObjectContext一个NSPersistentStoreCoordinator。听起来您将使用相同的数据模型,因此您可以保留现有的NSManagedObjectModel. 这可能意味着关闭除了初始登录屏幕之外的整个 UI(尽管如果你真的很小心,你可能会做一些事情,比如NSManagedObjectContext用另一个替换一个并更新 UI)。您需要对此非常彻底-例如,如果您保留一个NSManagedObject,例如,当NSPersistentStoreCoordinator它来自不可用时,那么您就是在自找麻烦。

于 2013-07-01T16:56:07.567 回答