应用程序退出后Core Data数据库是否关闭?

时间:2012-09-12 08:15:32

标签: iphone objective-c core-data

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

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

1 个答案:

答案 0 :(得分:1)

在iOS上(作为单用户应用程序是活动的时间操作系统),您的应用程序将“打开”并“关闭”数据库。

如果应用程序意外关闭,那么您的应用程序未保留的所有更改都将丢失。除非你告诉它(即通过设置NSPersistantStorageController和Context),应用程序将不会打开数据库。

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

经常让我感到困惑的是当我在调试期间使用类似sqlite数据库浏览器或Liya之类的东西监视数据库时,浏览器阻止了对商店的更新。但那是在调试期间,而不是在正常使用期间。