UserDefault 是Cocos2d-x引擎提供的持久化方案,存储所有游戏通用的用户配置信息(例如音乐和音效配置)本质是一个XML文件,它将每个键值对以节点的形式存储在外存中。
cocos2dx 3.2 的UserDefault在项目 cocos2d\cocos\base 路径下有:
CCUserDefault.cpp -> 除IOS,MAC,Android之外的其他平台调用文件 -> flush()函数是空的;
CCUserDefault.cpp -> Android平台调用的文件 -> flush()函数是空的;
CCUserDefault.mm -> IOS和MAC平台调用的文件 -> flush()函数是有内容的;
CCUserDefault.h -> 为CCUserDefault.cpp,CCUserDefaultAndroid.cpp,CCUserDefault.mm公用头文件;
为了安全性起见,在运用UserDefault进行数据存储时,最好加上flush()
缺点:
每次set和get都会遍历整棵XML树,效率不高;
存储值类型具有局限性(目前只支持基本数据类型);
没有记录和表的概念;
没有数据类型安全(比如,如果你错写把一个Integer按Bool读取,是没有错误提示的)