【发布时间】:2017-01-22 22:11:33
【问题描述】:
试图理解hot to fix相当常见的异常:
Changing Realm data can only be done from inside a transaction.
下一个代码:
realm.isInTransaction();//returns true
realmList.add(object);//IllegalStateException is thrown
正如提到的here,很可能Realm.getDefaultInstance() 用于多个地方。但事实并非如此,我只是删除了所有 realm 实例用法。有没有办法理解它为什么会发生?因为异常消息完全没有意义:它说事务应该从事务内部完成,同时realm.isInTransaction 返回 true。 executeTransaction 没有帮助。
【问题讨论】:
-
请显示与该地点相关的所有代码。或者发布问题重现的项目。
-
@Divers 很难发布整个项目。我只是想了解为什么异常消息毫无意义,或者我什至会说误导,换句话说,了解幕后发生的事情。
-
很可能
realmList与realm的另一个实例相关联,但没有代码我只能猜测。 -
有没有办法检查这个关联?喜欢
realm.isItAssociatedWith()? -
那么你是从你在事务中获得的 RealmObject 中获得这个领域列表的吗?