ios - 使用 Objective-C 在 Realm 中捕获写入错误的正确方法是什么?

标签 ios objective-c database macos realm

我们在初始化时将相当多的项目导入到我们的 Realm 数据库客户端。我们正试图找出它在某些客户端机器上崩溃的原因,但我们不确定“捕获”此错误以记录它的正确方法。我读过写错误不是为了被捕获。这是一些简化的代码

RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
for(NSDictionary* package in packages)
{
     CMPackage *realm_package = [my_type createOrUpdateInDefaultRealmWithValue:package];
}

[realm commitWriteTransaction];

当调用 createOrUpdateInDefaultRealmWithValue 时发生崩溃,但仅在某些客户端上发生。我们认为它可能只是一个在更新之间徘徊的旧文件,但我们无法弄清楚它,因为我们无法捕获它。在中心语句周围放置 try/catch 是否安全?当其中一个写入出错时提交写入事务是否安全?这个问题有好的解决办法吗?

编辑:

我还应该指出,我们希望在一个事务中完成所有操作,并且能够在一次写入失败后继续处理事务,因为如果在单独的转换中完成写入,速度会受到负面影响。

最佳答案

根据上述与 Realm 工程师的对话,似乎不支持测试和验证事务中的单个插入,并且只能在每个事务的基础上捕获错误。我假设,因为这是一个事务,如果发生异常,这将回滚所有其他插入。

关于ios - 使用 Objective-C 在 Realm 中捕获写入错误的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40879454/

相关文章:

ios - 蓝牙信号弱 iOS

ios - sdwebimage:有多少 setimageWithUrl 可以排队的限制?

iphone - 如何在ios中获取一周的开始日期和结束日期

ios - 为什么我无法正确获取图像数据或无法将数据发送到服务器?

php - 试图让 PHP 复选框保存 MySQL 表中的数据

.net - 关闭数据库连接

ios - 直接使用 Realm 对象(即作为 CollectionView 数据源)

objective-c - 在phonegap上使用sharekit进行xcode中的重复错误(但对于phonegap-plugin则不如此)

iphone - 如何拉伸(stretch)图像以填充 UILabel 背景中设置的标签宽度?

php - 在 PHP 中处理数据库错误