解析对象时删除Realm数据库

时间:2016-01-20 15:18:06

标签: ios realm

我正在使用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];
}

处理此问题的正确方法是什么?我想删除我在注销时存储的所有数据。

1 个答案:

答案 0 :(得分:0)

您可以通过属性invalidated检查对象是否仍然存在。作为锁定机制,您可以使用写入事务本身,因为这些是Realm独有的。您只能在一个时间点输入一个写入事务。