cocos creator本地储存数据_cocos creator 中数据储存的坑。。。

我们都知道,开发一个游戏,一个重要的环节就是存储用户数据,对于大的数据当然数据库最好,但是一下小的数据再用数据库就有点小题大做了,对于cocos creator ,系统提供给我们一个简单的键值对的存取格式:

cc.sys.localStorage.setItem(key, value); //存储数据

其中 key 是要存储的数据的名字,读取数据时要用到这个键, value 的该数据的值;

cc.sys.localStorage.getItem(key); //读取数据

其中 key 就是我们存数据时候输入的数据名字,这些都很好理解,但是有件事就不好理解了,如下:

cc.sys.localStorage.setItem("isPlay", false);

var isPlay = cc.sys.localStorage.getItem("isPlay");

if(isPlay){

console.log("isPaly is true");

}else{

console.log("isPlay is false");

}

按道理来说,我们存储的 isPlay 的值为 false ,输出的日志应该为 “isPlay is false”,然而。。。。。。

没错,这个就是运行的结果,说实话,我刚开始发现结果并不是我想要的,然后就开始调试,然后惊讶的发现了if(!isPlay)的语句直接跳过,然后我看着控制台显示

我当时就懵了,这是什么情况,难道JS存在bug?竟然让我发现了!然后就是各种不相信,就一遍一遍的试,一遍一遍的崩溃,最后终于让我找到了,我试着把

cc.sys.localStorage.setItem("isPlay", false);

这段代码中的 false 随便改了一个字符串,发现输出的log没有发生改变,到了这里,可能大家都想到了,在这个地方,我们存储的 isPlay 的内容实际上是一个字符串,而不是一个 false 的 bool 类型,

所以当我们对 isPlay 的值进行判断的时候,if(isPlay) 这个条件才会通过,发现了这个,接下来就简单了,可以用 0 和 1 来代替 false 和 true ,在条件语句中直接判断 isPlay 的值就可以了。希望可以帮助遇到同样问题的你。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值