Android Realm为何无可用删除方法?
解决Realm删除方法不匹配的问题
嗨,这个问题其实是Realm版本差异导致的,我来给你理清楚:
你当前使用的是Realm
0.84.1,这是一个比较早期的版本,在这个版本中,删除相关的方法确实是以remove开头的:- 删除单个对象:调用
removeFromRealm() - 删除所有对象:调用
removeAllFromRealm()
这些方法和你看到的教程里的deleteFromRealm()/deleteAllFromRealm()功能完全一致,只是命名不同。
- 删除单个对象:调用
那些教程里的
delete系列方法,是Realm在后续版本(大概0.88.0及以后)对API做的命名优化,把remove改为delete让语义更清晰。如果你想使用这些delete方法,需要升级你的Realm依赖版本:- 修改
build.gradle中的依赖,替换为更新的稳定版,比如:
(注意:升级版本时要留意数据库迁移的问题,如果已有旧版本的Realm数据库文件,需要编写迁移代码保证数据兼容)compile 'io.realm:realm-android:2.2.1' - 同步Gradle项目后,就能使用
deleteFromRealm()和deleteAllFromRealm()方法了。
- 修改
小提示:以后查阅Realm教程时,一定要注意教程对应的Realm版本和你当前使用的版本是否匹配,Realm的API在迭代过程中有不少调整,版本不匹配很容易出现这类方法找不到的问题。
内容的提问来源于stack exchange,提问作者Patroy
相关产品推荐
相关产品推荐

