Realm Swift:卸载应用后是否可能保留数据库?

7

使用Realm Swift,是否可以在设备内存中保留并维护应用程序的Realm数据库文件,即使应用程序已从设备中卸载?

非常感谢您的任何帮助。

2个回答

7

很遗憾,这不是Realm的限制,而是iOS的限制。当iOS应用程序从设备中卸载时,与其相关的所有文件都会被删除(包括任何Realm文件)。

如果您希望文件数据在应用程序被删除后仍然存在,请考虑使用云托管解决方案来保存这些文件的副本。在这种情况下,最简单的解决方案可能是CloudKit


1
我同意你的答案,但是在快速阅读了iOS数据存储指南之后,它说存储在<Application_Home>/Documents目录中的数据将自动由iCloud备份。我很确定这就是default.realm默认存储的位置。也许你对此更了解?我以前从未使用过iCloud / CloudKit。 - Dickson Leonard
2
这意味着“文档”文件夹中的文件仅包括在特定设备的每夜iCloud备份中。因此,如果您想升级到新的iOS设备(或还原旧设备),则该文件将在恢复期间重新下载。如果您明确卸载应用程序,则该数据也将从设备备份中删除。这有点令人困惑,因为它属于苹果的“iCloud”统称范畴,但与CloudKit不同。 :) - TiM
很不幸,我的应用程序是一个简单的离线应用程序,因此CloudKit不是正确的解决方案。通过谷歌搜索,可能的解决方案是手动实现领域文件的备份和恢复机制到设备的存储中。因此需要手动从应用程序中恢复数据库。无论如何,非常感谢您的说明 @TiM,您的答案非常有帮助。 - David Aditya

2

删除应用程序时,所有文件都会留下。iOS应用程序是沙盒化的。这意味着每个应用程序在磁盘上都有自己的空间,有自己的目录,作为应用程序及其数据的主目录。

从iPhone中删除应用程序会删除此沙箱,并删除与该应用程序相关联的所有数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接