从realm.io中删除项目怎么了?RealmException"不支持删除对象."?

A. *_*gen 10 database android realm

我试图根据查询从Realm.io数据库中删除最后一个Object,如下所示:

    Realm realm = Realm.getInstance(this);
    final RealmResults<RealmCustomLocation> databaseLocations = realm.where(RealmCustomLocation.class).findAllSorted("timeStamp", RealmResults.SORT_ORDER_DESCENDING);
    if(databaseLocations.size() >= 4){
        realm.beginTransaction();
        databaseLocations.removeLast();
        realm.commitTransaction();
    }
Run Code Online (Sandbox Code Playgroud)

这与Realm.io中有关删除的说明完全相同:

realm.beginTransaction();
result.removeLast();
realm.commitTransaction()
Run Code Online (Sandbox Code Playgroud)

但是当我执行代码时,它总是以RealmException中断

io.realm.exceptions.RealmException: Removing object is not supported.
Run Code Online (Sandbox Code Playgroud)

然后我查看了RealmResults.java的源代码,我发现了这个: 在此输入图像描述 所以难怪它一直崩溃,removeLast()什么都不做,只抛出一个错误!

所以我的问题是:如何从数据库中删除对象呢?!

我在Android上使用realm.io 0.77(编译'io.realm:realm-android:0.77.0').

感谢您对此的帮助!

A. *_*gen 7

我联系了Realm.io支持,等待回答.与此同时:

RealmCustomLocation location = databaseLocations.get(databaseLocations.size() - 1);
location.removeFromRealm();
Run Code Online (Sandbox Code Playgroud)

相当于

databaseLocations.removeLast()
Run Code Online (Sandbox Code Playgroud)

所以它可以用作解决方法.

编辑:支持告诉我他们正在为将来的版本修复它,并建议同时使用我发布的解决方法.

  • 刚碰到这个.我无法相信他们至少没有更新有关如何删除某些内容的文档. (4认同)