DylanCaiCoding/MMKV-KTX

请问如何单独存一个值呢

Closed this issue · 2 comments

不知道我这样写对不对

object LanguageRepository : MMKVOwner {

override val kv: MMKV
    get() = MMKV.mmkvWithID("language")

val currLang by mmkvString()

fun putCurrLang(language: String) {
    kv.encode(::currLang.name, language)
}

fun clearCurrLang() {
    kv.removeValueForKey(::currLang.name)
}

}

val 改成 var

object LanguageRepository : MMKVOwner {

  var currLang by mmkvString()

  override val kv = MMKV.mmkvWithID("language")
}

可以赋值 null 清除数据:

// 保存数据
LanguageRepository.currLang = "en"

// 清除数据
LanguageRepository.currLang = null

重写 kv 属性最好直接用等号赋值不要 get() =,不然 MMKV.mmkvWithID("language") 会执行多次。

好的谢谢