我正在尝试添加使用领域将以前导出的数据库加载到手机应用程序中的功能。该数据库包含在一个 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?;
}
当我导入的数据库创建了枪支图像时,我开始收到该错误。
我还尝试完全替换似乎确实有效的领域文件,但只有在我关闭应用程序并重新打开它之后。我的目标是能够导入数据库文件并重新加载应用程序中可查看的数据,而无需终止它并重新打开。
有人知道什么可能导致抛出异常吗?