停止运行应用程序后领域无法正常工作?

时间:2016-04-12 06:24:42

标签: realm

我通过添加2000条记录来测试Realm。问题是,当我停止运行应用程序时,即使任何行都没有执行,deleteAllObject方法也不会调用。我认为beginWriteTransaction方法存在问题。

这是我的代码:

 {% set greet = "<strong>hello</strong>" %}

 <div id="1"> {{ greet|raw }} Jeremy</div>
 <div id="1"> {{ greet|raw }} Davis</div>

1 个答案:

答案 0 :(得分:0)

如果您的代码在第一个[realm beginWriteTransaction];语句处暂停,那么这似乎意味着另一个写入事务已在其他地方打开。

Realm只允许一个事务一次修改磁盘上的数据,并故意停止任何新事务,直到当前事务完成为止。我建议为初学者调查一下。您可以通过RLMRealm属性检查-[RLMRealm inWriteTransaction]是否已在交易中。 :)

此外,如果批量写入尽可能少的事务,Realm会更好。由于您在for循环中为每次迭代打开和关闭事务,因此您在那里创建了2000个单独的事务,这可能会轻易地降低Realm的速度。

如果你的代码结构如此,你的代码可能运行得更快:

[realm beginWriteTransaction];
for (int i = 0 ; i < 2000; i++) {
    PeopleInformation *info = [[PeopleInformation alloc] init];

    info.name = [NSString stringWithFormat:@"%@ %d",@"Rohit",i];
    info.city = @"Delhi";

    [realm addObject:info];
}
[realm commitWriteTransaction];

让我知道这是否有帮助!