菜鸟教程小白 发表于 2022-12-12 11:42:19

ios - 尝试在写事务之外修改对象


                                            <p><p>我正在尝试检索所有已保存的用户 (RLMObject) 对象。然后我检查是否有任何对象保存。如果不是,我创建一个新的用户对象并尝试保存它。 </p>

<pre><code>RLMArray *allUsers = ;

if (allUsers.count == 0) {
      RLMRealm *realm = ;
      ;

      User *newUser = [init];
      newUser.userID = integerValue];
      newUser.role = userDict[@&#34;role&#34;];
      newUser.email = userDict[@&#34;email&#34;];
      newUser.given_name = userDict[@&#34;profile&#34;][@&#34;given_name&#34;];
      newUser.family_name = userDict[@&#34;profile&#34;][@&#34;family_name&#34;];

      ;
      ;

}
</code></pre>

<p>但是,这会崩溃并显示以下消息:<code>'RLMException',原因:'尝试在写入事务之外修改对象 - 首先在 RLMRealm 实例上调用 beginWriteTransaction。'</code></p>

<p>我真的不知道为什么。我正在修改默认 Realm 的写入事务中的对象。</p>

<p>提前致谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您必须为每个线程调用一次 RLMRealm defaultRealm,以获得不同的 RLMRealm 实例(相同的文件路径,但不同的变量)。这使我们能够为您轻松整理所有线程安全。见 <a href="http://realm.io/docs/cocoa/0.84.0/#using-a-realm-across-threads" rel="noreferrer noopener nofollow">http://realm.io/docs/cocoa/0.84.0/#using-a-realm-across-threads</a>了解详情。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 尝试在写事务之外修改对象,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/25638252/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/25638252/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 尝试在写事务之外修改对象