如何在 iOS 项目中正确配置 Realm DB 文件 (<db_name>.realm) 的路径?
Posted
技术标签:
【中文标题】如何在 iOS 项目中正确配置 Realm DB 文件 (<db_name>.realm) 的路径?【英文标题】:How to correctly configure path for the Realm DB-file (<db_name>.realm) in iOS project? 【发布时间】:2016-03-09 05:54:01 【问题描述】:对不起我的英语。
我开发了一个需要自己的本地数据存储的移动应用程序。我选择 Realm 作为数据库管理系统。在研究 Realm 文档的过程中,我对数据库设计、规范化、CRUD 操作以及与代码直接相关的所有内容都没有任何问题。
我很困惑。我在模拟器中测试我的应用程序。我没有创建本地数据库。我刚刚按照 Realm 文档中的说明进行了操作。 Realm 自己创建了它的数据库,我没有指定任何设置。我的数据库文件的位置如下: /Users/macbookpro/Library/Developer/CoreSimulator/Devices//EFECD945-285C-494F-8C1B-950D9AA05147/data/Containers/Data/Application/8D71FF0A-60D2-4875-96BB-36955E80D505/Documents/default.realm。
我很不方便每次都应用这条路径来分析数据库中的记录。存储在此路径的文件对于 Realm Browser 是不可访问的,因为我需要 root 权限。我看到人们将他们的 .realm 文件存储在项目目录中。请回答我 - 我该怎么做?这会是正确的选择吗?
我多次看到代码,其中出现了数据库文件的路径。例如,这里:https://github.com/pietbrauer/CarthageRealmUploadFailureExample/blob/master/Carthage.checkout/realm-cocoa/examples/ios/swift/Migration/AppDelegate.swift 我不确定这是否是正确的方向。
因此,我想:
1) 手头有一个数据库文件并能够快速引用它;
2) 了解算法 - 如何设置自己的 Realm 数据库路径 文件;
3) 知道真实设备上必须有哪些领域配置,以便 确保安全性和数据完整性。
非常感谢大家!
【问题讨论】:
【参考方案1】:当你在你的应用中没有为默认的 Realm 指定路径时,Realm 会自动在你的应用的 Documents 目录中创建一个名为 default.realm
的路径。在 iOS Simulator 中运行的应用程序上,这会将 Realm 文件保存在适当的 Simulator 文件夹中,但您是正确的,因为它不是很直观。
回答您的问题:
有一个很酷的实用程序叫做SimPholders,它可以让你在 iOS 模拟器中检查应用程序的 Documents 文件夹。这是获取模拟器生成的任何 Realm 文件的最佳方式。
创建Realm
对象的实例时,您可以提供Configuration
对象来自定义它。您可以通过设置Configuration
对象的path
属性来显式设置Realm 文件的文件路径。
iOS 在磁盘上提供了一个自动文件加密层,当设备被锁定时无法读取文件。如果您想要额外的安全性,那么可以设置 Realm Configuration
对象的 encryptionKey
属性,让 Realm 自己加密磁盘上的 Realm 文件。
希望对您有所帮助!如果您需要更多说明,请告诉我!
【讨论】:
蒂姆,非常感谢!我的遗漏是我在结束之前没有阅读文档。但是我还是建议将1) 和 2) 对安全性和数据完整性的影响非常小 3)如果您担心数据的安全性,请使用领域级加密,例如here
【讨论】:
以上是关于如何在 iOS 项目中正确配置 Realm DB 文件 (<db_name>.realm) 的路径?的主要内容,如果未能解决你的问题,请参考以下文章
在 IOS(Objective-C)中有效地解析 JSON 到 Realm DB
共享项目中的 Xamarin Realm,错误“Fody 未正确安装”
如何使用 Objective C 查询 Realm DB 中的嵌套对象
如何使用Objective C在Realm DB中存储数组值(RLMArray)?