【已解决】关于UserDefault在安卓移植后不起作用的问题

做一个最高分的记录
WIN7+VS2012写的代码
写入分数(_best是一个全局变量,记录分数的):
UserDefault::getInstance()->setInterForKey(“Best”, _best);
UserDefault::getInstance()->flush();
读取分数:
UserDefault::getInstance()->getInterForKey(“Best”);

在VS下直接本地调试,一切正常。但移植到安卓时,没有发现其他问题,但最高分记录却没有读取到。也可能是根本没有写入。我手机没有ROOT,看不到是否写了.xml文件。

谁能帮忙看一下,可能是哪里出了问题。谢谢了

发现问题了。

我之前在读取最高分记录的时候用isXMLFileExist()判断文件是否存在,结果发现无论文件是否存在,isXMLFileExist()返回的都是false,造成始终不能读取到正确的值。

现在在写记录的时候再写一个setBoolForKey(“isSaved”),然后用getBoolForKey(“isSaved”)来判断就正常了。

对啊,就是isXMLFileExist(),在一次项目运行中如果在判断isXMLFileExist()前没进行任何关于UserDefault的动作的话就只会返回false,所以这个判断方法是最好别用
顺便setBoolForKey(“isSaved”) 这种 如果不存在isSaved这个键会默认返回false,也挺不方便的,除非是明确了才判断时有此键,否则判断getBoolForKey(“isSaved”)还是有点问题