将所有对象从一个 Realm 复制到另一个 Realm

2024-03-20

我正在尝试添加使用领域将以前导出的数据库加载到手机应用程序中的功能。该数据库包含在一个 zip 文件中,我将其从电子邮件导入到应用程序中,将其提取,然后将领域文件写入应用程序本地存储。将其写入文件后,我将加载备份领域文件,查询对象,然后将它们写入当前领域。

在我导出在其关系之一中具有数据集的对象之前,这确实工作正常。下面是我用来导入数据库的代码:

let config = Realm.Configuration(path: newPath.path, readOnly: true);
let newRealm = try! Realm(configuration: config);
let realm = try! Realm();

try! realm.write {
    realm.deleteAll();
}

let firearms = newRealm.objects(Firearm);

try! realm.write {
    for firearm in firearms {
        realm.create(Firearm.self, value: firearm);
    }
}

现在,每次我尝试调用realm.create时,都会收到 EXC_BAD_ACCESS code=2 错误,并且不确定是什么原因导致的。

下图是枪械型号:

class Firearm: Object {    
    dynamic var id = "";
    dynamic var label = "";
    dynamic var manufacturer = "";
    dynamic var model = "";
    let images = List<FirearmImage>();
    let documents = List<FirearmDocument>();
    let maintRecords = List<FirearmMaintenance>();
    let accessories = List<Accessory>();
}

这是枪械图像模型:

class FirearmImage: Object {
    dynamic var id = "";
    dynamic var fileName = "";
    dynamic var firearm: Firearm?;
}

当我导入的数据库创建了枪支图像时,我开始收到该错误。

我还尝试完全替换似乎确实有效的领域文件,但只有在我关闭应用程序并重新打开它之后。我的目标是能够导入数据库文件并重新加载应用程序中可查看的数据,而无需终止它并重新打开。

有人知道什么可能导致抛出异常吗?


我不相信当您将子对象移动到另一个领域时,子对象会自动与其父对象复制。

当您循环访问每个对象时,您很可能需要检查是否有任何子对象,首先复制它们,然后复制父对象,然后确保它们仍然在新副本中链接。

如果这不起作用,请告诉我!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将所有对象从一个 Realm 复制到另一个 Realm 的相关文章

随机推荐

  • 当变量为 None 时,Django 设置默认模板标签输出?

    我正在寻找 django 设置或编程方式 使所有 django 模板标签在值为 None 时显示空字符串 例如 假设我有一些 django 模板 cat chases mouse 如果 cat 和 mouse 都为 None 它将呈现为 N
  • Bool 属性无法在 swift 中标记为动态

    我正在尝试观察Bool使用 KVO 并添加 swift 中的值dynamic像这样的修改器 dynamic var isRestricted Bool 编译器说 属性无法标记为动态 因为其类型无法在 Objective C 中表示 那我该怎
  • 如何使用自动装配的 Spring Boot 监听多个队列?

    我是 Spring Boot 的新手 正在尝试它 目前我已经构建了一些应用程序 我希望能够通过队列相互通信 我目前有一个侦听器对象 可以从特定队列接收消息 Configuration public class Listener final
  • 最新R版本的dplyr汇总功能问题

    在我之前的 R 版本中从未发生过以下情况 mtcars gt dplyr group by carb gt dplyr summarise N sum am 1 Error in summarise impl data dots envir
  • 域组的 Windows 身份验证到 Oracle

    我知道可以使用 操作系统身份验证 来对 Oracle 数据库中的 Windows 用户进行身份验证 该过程基本上是将当前 Windows 用户 ID 传递给 Oracle 进行身份验证 问题是 是否可以在 Oracle 中对域组进行身份验证
  • WKWebView 和 NSURLProtocol 不起作用

    使用旧的 UIWebView 时 您可以通过实现自定义 NSURLProtocol 来捕获请求 我用它来处理需要身份验证的请求 我尝试了相同的代码 它不适用于新的 WKWebView 但我的协议类根本没有被调用 有人遇到同样的问题还是有更好
  • Tkinter filedialog.askdirectory() 找不到外部驱动器

    I have made some folder synchronization program in the last week that I wanted to primarily deploy to have an easy way t
  • Common Lisp 中的未绑定变量

    我是 Lisp 新手 正在阅读 ANSI Common Lisp 第 8 章中的文本生成器示例 我按照该示例并在 LET 变量 prec 的范围内定义了一个函数 see let prec defun see symb let pair as
  • JavaScript 中音频的波形可视化[重复]

    这个问题在这里已经有答案了 我正在尝试使用 JavaScript 显示音频文件的波形 但我什至不知道如何开始 我找到了音频数据API https wiki mozilla org Audio Data API Working Audio D
  • Hyperledger Fabric 中私有数据的历史

    有没有办法获取 Hyperledger Fabric 节点 SDK 中私有数据的历史记录 我尝试过使用getHistoryForKey key 它返回一个空对象 仅包含 done true 用于获取私有数据历史记录的 API 尚未实现 但计
  • Swift/https:NSURLSession/NSURLConnection HTTP 加载失败

    不幸的是 今天早上我的 XCode 更新到了版本 7 而我使用 http 开发的 iOS 应用程序现在需要 https 因此 根据许多教程 我配置了 MAMP 服务器 以便使用 https ssl 创建虚拟证书 现在我的 iOS 应用程序
  • 如何在不授予 Google 签名权限的情况下发送应用程序包?

    在米莱娜 尼科利奇的 Google Play 的新功能 https www youtube com watch v cMr b660Esw作为 Google 的一部分的演示文稿 android11发射 她说 随着我们不断改进 App Bun
  • 使用 Laravel 和 Passport 响应身份验证失败时返回状态代码 401?

    我正在配置 Laravel 项目以使用 Passport 令牌身份验证 一切似乎都正常 但是当auth api中间件失败 它以状态响应客户端200以及响应正文中的一堆 HTML 相反 我希望它以以下状态响应401 我在 Laravel Pa
  • 不变失败:您不应在 之外使用

    I use react router dom用于我的路由React应用 我的应用程序的一部分提取到另一个包中 依赖项列表如下所示 app dashboard package json dependencies app components
  • 您可以通过 Android studio 将 Android 应用程序作为 ARC 应用程序启动吗?

    我想知道是否有一种方法可以从 Android Studio 启动和 或构建 ARC 应用程序 而不必每次都手动使用 ARC 焊机 在开发过程中手动执行此操作可能非常麻烦 尤其是在发布过程中 您必须对同一应用程序的约 15 种不同风格执行相同
  • 从多个 SQL Server 表中选择 TOP 4 记录。使用vb.net

    我有大约 4 个不同的表 它们具有完全相同的列名 我想要做的是从所有这些按日期排序的表中选择前 4 条记录 因为日期是它们共享的列之一 我不断收到错误的语句 无论是语法问题还是不明确的记录等 本质上我的声明类似于 SELECT TOP 4
  • 如何在 AngularFire2 中获取 firebase.User

    我正在使用 AngularFire2 Ionic2 和 Firebase 身份验证 我在尝试获取当前用户时遇到问题 这对我有用 但不一致 有时它被填充 有时它为空 let user firebase User firebase auth c
  • 打开带有动态内容的窗口

    是否可以从 PHP 打开一个具有预定义内容的窗口 很明显 您可以从框架现有页面的 javascript 链接打开一个窗口 或者仅从引用现有页面的常规 a 标记执行 target blank 但我正在生成一些内容 并希望在新链接中打开该内容
  • 如何在命令行中从 .NET 程序集获取 IDL(或如何将 TLB 转换为 IDL)?

    我们有一个 NET 程序集 实际上是 Aspose Words 我们希望客户端能够从 COM 客户端轻松使用它 因此 我们随程序集提供了 TLB 以便客户端可以从 C 或 Delphi 等语言中使用它 而不必自己提取 TLB 我们还随程序集
  • 将所有对象从一个 Realm 复制到另一个 Realm

    我正在尝试添加使用领域将以前导出的数据库加载到手机应用程序中的功能 该数据库包含在一个 zip 文件中 我将其从电子邮件导入到应用程序中 将其提取 然后将领域文件写入应用程序本地存储 将其写入文件后 我将加载备份领域文件 查询对象 然后将它