如何在iOS项目中正确配置Realm DB文件(<db_name> .realm)的路径?

时间:2016-03-09 05:54:01

标签: ios swift swift2 realm

抱歉我的英文。

我开发了一个需要自己的本地数据存储的移动应用程序。我选择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)知道真实设备上的域配置必须是什么     确保安全性和数据完整性。

非常感谢大家!

2 个答案:

答案 0 :(得分:2)

如果您未在应用中指定默认Realm的路径,Realm将自动在您应用的Documents目录中创建一个名为default.realm的路径。在iOS模拟器中运行的应用程序中,这会将Realm文件保存在相应的模拟器文件夹中,但是你是正确的,因为它找不到它。

回答你的问题:

  1. 有一个名为SimPholders的酷工具,可让您检查iOS模拟器中应用的文档文件夹。这是获取Simulator快速生成的任何Realm文件的最佳方法。

  2. 创建Realm对象的实例时,可以提供Configuration对象来自定义它。您可以通过设置该path对象的Configuration属性来显式设置Realm文件的文件路径。

  3. iOS在磁盘上提供自动文件加密层,使设备锁定时无法读取文件。如果您想要额外的安全性,那么可以设置Realm encryptionKey对象的Configuration属性,让Realm本身加密该磁盘上的Realm文件。

  4. 我希望有所帮助!如果您需要进一步澄清,请告诉我们!

答案 1 :(得分:0)

1)和2)对安全性和数据完整性的影响非常小 3)如果您担心数据的安全性,请使用像here

这样的Realm级加密