【发布时间】:2016-11-25 14:04:51
【问题描述】:
我想知道是否有人遇到过像我这样的问题。我目前正在编写一种方法来解析我需要保留在我的 Realm 数据库中的信息数组。
RLMRealm *defaultRealm = [RLMRealm defaultRealm];
[defaultRealm beginWriteTransaction];
[defaultRealm deleteObject:myOldObjectWithPrimaryKey1];
[defaultRealm commitWriteTransaction];
...do some work....
[defaultRealm beginWriteTransaction];
[defaultRealm addOrUpdateObject:myNewObjectWithPrimaryKey1];
[defaultRealm commitWriteTransaction];
这在 Realm 中是合法的吗?我注意到我的值没有被正确更新/存储。
谢谢!
【问题讨论】:
-
虽然它不会“引起问题”,但对象本身将变得无效,您必须重新查询“具有相同主键的新对象”。
-
您是否看到任何错误消息?您提供的代码示例对我来说似乎很好。
-
@EpicPandaForce 我知道 myOldObjectWithPrimaryKey1 将变得无效,但我不再尝试访问该对象。 myNewObjectWithPrimaryKey1 是一个全新分配的对象……这两个对象之间唯一相同的是它们共享相同的主键值。在这种情况下,它们都共享主键值 1。
-
@Dmitry 不,我没有看到任何错误...我只是想弄清楚为什么有时数据库不会保留数据。虽然它似乎与我调用 writeCopyToPath 来压缩数据库有关。
标签: ios objective-c realm