レルムはすでに書き込みトランザクション中です。レルムはすでに書き込みトランザクションにあります
どうすればこのエラーを回避できますか?レクチャーが書かれた牽引であることを確認する方法はありますか?レルムが書込みトランザクションの場合は最初にクローズし、次に他の作業を行います。今、このエラーが発生した後、 "レルムはすでに書き込みトランザクション中です。"レルムに関連する他のタスクも機能しません。
レルムはすでに書き込みトランザクション中です。レルムはすでに書き込みトランザクションにあります
どうすればこのエラーを回避できますか?レクチャーが書かれた牽引であることを確認する方法はありますか?レルムが書込みトランザクションの場合は最初にクローズし、次に他の作業を行います。今、このエラーが発生した後、 "レルムはすでに書き込みトランザクション中です。"レルムに関連する他のタスクも機能しません。
レルムの経験則は、いつでもRLMRealm
で開いている書き込みトランザクションの1つだけです。このエラーが発生した場合は、ロジックを再考する必要があります。同じスレッド上で既に開いているRLMRealm
で2番目の書き込みトランザクションを意図的に開こうとするべきではありません。別のスレッドで行うのは問題ありませんが、最初のトランザクションが完了するまで、2回目の書き込みトランザクションがオンになっているスレッドはブロックされます。
あなたの実装には、正しく設定されていないものがある場合は、あなたが完了したと思われるトランザクションにエラーがあり、開いている可能性があります。セバスチャンは言ったように、-[RLMRealm inWriteTransaction]
でこれをチェックすることができますが、この場合、なぜそのようなことが起こっているのかを確かめるためにコードをバックトラックする必要があります。
同じスレッドで書き込みタスクを実行している場合は、NSMutableArray
に追加してからaddOrUpdateObjectsFromArray
を使用します。反対側では、realmオブジェクトにinWriteTransaction
を発射することによって書き込み競合を回避することができます。