【问题标题】:Maintain multiple instances of the Relam维护 Realm 的多个实例
【发布时间】:2016-10-26 05:15:18
【问题描述】:

我正在开发一个 SDK,一个将出售给第三方的静态库。这个静态库将使用 Relam 作为数据存储。

我正在计划这样一种情况,即我的客户在他的应用程序上也有一个使用 Relam 的数据存储。我不希望他们更改/迁移他们的数据存储,因为他们正在合并我的 SDK。

我们可以在使用 Relam 时拥有多个数据存储/实例吗?

或者有没有其他更好的方法来处理这种情况?

【问题讨论】:

标签: ios objective-c cocoa-touch realm


【解决方案1】:

我将分两部分回答:

第 1 部分 - 代码架构

如果您在内部库中使用 Realm,并且担心您对 Realm 的使用可能会渗入用户的代码(如果他们也在使用 Realm),那么有一些方法可以缓解这种情况。

你是对的,使用RLMRealmConfiguration 可以让你正确地将你的大部分 Realm 实现与他们的分开。您可以使用fileURL 属性明确指定您的Realm 文件将保存在哪里,并使用objectClasses 属性明确定义只有您自己的RLMObject 类将被保存到其中。

这可能需要测试,但反之亦然。 Realm 默认使用 Objective-C 反射添加所有 RLMObject 类。因此,除非用户还在他们的配置中指定objectClasses,否则库的模型对象的模式可能会出现在他们的领域文件中。这将是无害的,但对用户来说可能看起来很奇怪。

第 2 部分 - 分发

在一个静态二进制文件中包含同一框架的 2 个副本并不好。尤其是当可以想象用户可以开始使用比你的库中的新版本的 Realm 时。因此,我绝对建议将 Realm 作为库的动态框架依赖项;因此您的库和用户的代码都可以针对相同的代码库。

【讨论】:

    猜你喜欢
    • 2010-11-10
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    相关资源
    最近更新 更多