2

我一直在查看当前应用程序中的一段代码,如果Core Data数据库已经打开,则检查应用程序启动。该数据库只能由单个应用程序(和单个用户)访问,因此无法从其他来源打开。我不确定的一件事是,如果应用程序意外退出,发生这种情况时数据库是否会关闭?

我想我问的是在单用户系统中是否存在用户启动应用程序并且数据库已经打开的情况?在测试中,我从未见过调用“它已经打开”的代码,所以我只是好奇我是否需要它?

4

1 回答 1

1

在 iOS 上(作为一个单用户应用程序是一次激活的操作系统),您的应用程序将“打开”和“关闭”数据库。

如果应用程序意外关闭,您的应用程序在该时刻没有持续的所有更改都将丢失。应用程序不会打开数据库,除非您告诉它(即通过设置 NSPersistantStorageController 和上下文)。

当可以在应用程序内的不同阶段触发数据库打开时,“已打开”代码将派上用场。因此,如果只有一个地方可以打开它,则不需要代码。不过,它不会受伤。

经常让我抓狂的是,当我在调试期间使用 sqlite 数据库浏览器或 Liya 之类的东西来监视数据库时,浏览器会阻止对存储的更新。但那是在调试期间,而不是在正常使用期间。

于 2012-09-12T08:48:59.513 回答