我正在使用Realm作为数据库的应用程序。用户可以随时注销,这将删除领域中的所有对象。
但是由于我的应用程序使用网络,我可能正在同时解析对象,然后崩溃。
*** Terminating app due to uncaught exception 'RLMException', reason: 'Object has been deleted or invalidated.'
这是我的退出功能:
- (void)logout {
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[realm deleteAllObjects];
[realm commitWriteTransaction];
[self showLoginScreen];
}
处理此问题的正确方法是什么?我想删除我在注销时存储的所有数据。
答案 0 :(得分:0)
您可以通过属性invalidated
检查对象是否仍然存在。作为锁定机制,您可以使用写入事务本身,因为这些是Realm独有的。您只能在一个时间点输入一个写入事务。