美文网首页
使用Realm碰到This method is not supp

使用Realm碰到This method is not supp

作者: cwzqf | 来源:发表于2017-06-30 16:35 被阅读133次

    使用Realm进行数据存储时,做了一个功能,离线状态下,从数据库读取之前存储的数据,正常是读取数据库内的数据进行显示,结果崩溃了
    报错:This method is not supported by RealmResults 意思是 RealmResults不支持此方法
    具体看下我的代码


    这段else就是断网状态下,从数据库读取数据的操作,然后数据传给view进行显示,list是为了底下获取position用到

    接着这个是fragment里的view方法实现,数据给adapter,这里还做了一次clear,就是这里报错

    因为我直接操作了realm查询出来的list,报错,以下是stackoverflow的回答,参考下:
    That's because RealmResults
    is just a set of pointers that satisfy the condition defined in the query. You can't manipulate it, nor should you if you just intend to show every element in your adapter.
    In fact, Realm was explicitly designed to simplify the workflow of "downloading data on a background thread and saving the data in a database", and "showing the data downloaded on a background thread automatically on the UI thread".

    谷歌翻译:
    这是因为RealmResults只是一组满足查询中定义条件的指针。您不能操作它,如果您只想显示适配器中的每个元素,也不应该。 实际上,Realm是为了简化“在后台线程上下载数据并将数据保存在数据库中”的工作流程,并且“在UI线程上自动显示在后台线程上下载的数据”。

    所以这里我做的处理也很简单,第一段代码换下位置:


    这里创建了个list来保存数据库查询出来的数据,这样我们就可以操作这个list了,避免直接去操作RealmResult,问题解决

    有时间学下MarkDown用法,不然排版实在是不美观。

    相关文章

      网友评论

          本文标题:使用Realm碰到This method is not supp

          本文链接:https://www.haomeiwen.com/subject/odkicxtx.html