Ios 我们能有两个领域吗?

Ios 我们能有两个领域吗?,ios,realm,Ios,Realm,我刚刚发现了王国。我正在考虑一种架构设计,其中有一个iOS应用程序、一个Mac应用程序和一个后端。iOS应用程序有一个连接到后端领域的领域(领域移动平台)。iOS应用程序有另一个领域(领域移动数据库)。后端有一个存储文件的数据库 我是这么想的 iOS应用程序从第三方API获取一些JSON,对其进行解析,并将其与领域(连接到后端的领域)中的内容进行比较。不在这个领域的东西会被发送到Mac应用程序,它会从外部源下载相应的文件,然后将这些文件上传到数据库。然后,Mac应用程序会向iOS应用程序发出警报

我刚刚发现了王国。我正在考虑一种架构设计,其中有一个iOS应用程序、一个Mac应用程序和一个后端。iOS应用程序有一个连接到后端领域的领域(领域移动平台)。iOS应用程序有另一个领域(领域移动数据库)。后端有一个存储文件的数据库

我是这么想的

iOS应用程序从第三方API获取一些JSON,对其进行解析,并将其与领域(连接到后端的领域)中的内容进行比较。不在这个领域的东西会被发送到Mac应用程序,它会从外部源下载相应的文件,然后将这些文件上传到数据库。然后,Mac应用程序会向iOS应用程序发出警报,iOS应用程序会将这些东西放入域(连接到后端的域)中。这是“更新后端”过程

现在,iOS应用程序将两个领域进行了比较,得到了本地领域之外的东西。然后使用这些领域对象中的链接从数据库下载文件。下载后,它会将这些对象添加到其本地域存储中。这是“将设备与后端同步”过程

这两个领域将存储相同类型的对象

额外:

理想情况下,设备不必与数据库完全同步,因此很可能会有一些后端领域和数据库文件的子集


一个领域平台和一个领域数据库的组合可能吗?

是的!这应该是可能的。你可以在一个应用程序中拥有任意数量的同步和非同步领域;您只需要确保协调用于实例化它们的
配置
对象

可以轻松地将领域对象从一个领域复制到另一个领域:

let objectFromLocalRealm = //...
let synchronizedRealm = //...

try! synchronizedRealm.write {
   sychronizedRealm.create(*objectType*.self, value: objectFromLocalRealm, update: true)
}
但是,如果使用此方法,则需要确保对象本身以及
列表中的任何子对象或其他对象都具有主键,否则可能会在同步域中得到同一对象的多个副本


Realm的相等性测试是检查两个
对象
实例是否指向数据库中的同一支持行,因此比较来自不同领域的两个对象可能不会自动工作。您可能需要实现一种手动比较方法,以检查某些属性值是否匹配。

是否有任何理由不在iOS应用程序、Mac应用程序和后端之间共享同一领域?嘿@ast,是的,保留一个增量,以便它知道它没有什么,所以它知道要下载哪些东西。是否可以在对象中添加一个属性来跟踪文件是否已下载,然后让Realm处理同步?应该会大大减少开销。谢谢蒂姆!昨天我在YouTube上看了你的王国对话,所以得到你的回应真是太离奇了哈哈。干杯,伙计!嘿,彼得!哈哈哈,真的吗?那是哪段视频?酷!很高兴我能帮上忙!祝你的应用程序其余部分好运!:)谢谢你蒂姆:)这是一个:很多好的笑声!非常棒的演讲。现在我喜欢使用领域。这是邪恶的。