请选择 进入手机版 | 继续访问电脑版
查看: 2721|回复: 8

[教程] [无脑码农CrossApp笔记]--CAUserDefault简单存储

[复制链接]
最佳答案
0 
无脑码农 发表于 2015-3-10 17:05:32 | 显示全部楼层 |阅读模式
在CrossApp中提供了自带的存储类:CAUserDefault,适合存储数据量比较小,结构比较简单的数据。如果你需要存储大量的复杂数据,建议使用SQlite3比较合适。
先介绍一下CAUserDefault的API:
方法名 说明
void setBoolForKey(const char* pkey,bool valuer) 根据pkey存储一个bool类型
void setIntegerForKey(const char* pkey,int valuer) 根据pkey存储一个int类型
void setFloatForKey(const char* pkey,float valuer) 根据pkey存储一个float类型
void setDoubleForKey(const char* pkey,double valuer) 根据pkey存储一个double类型
void setStringForKey(const char* pkey, const std::string & value) 根据pkey存储一个string类型
bool getBoolForKey(const char* pKey) 根据pkey读取相应的值,如果没有在UserDefault.xml找出则返回false
bool getBoolForKey(const char* pKey,bool defaultValue)根据pkey读取相应的值,如果没有在UserDefault.xml找出则返回defaultValue
int getIntegerForKey(const char* pKey) 根据pkey读取相应的值,如果没有在UserDefault.xml找出则返回0
int getIntegerForKey(const char* pKey, int defaultValue) 根据pkey读取相应的值,如果没有在UserDefault.xml找出则返回defaultValue
float getFloatForKey(const char* pKey)         根据pkey读取相应的值,如果没有在UserDefault.xml找出则返回0.0f
float getFloatForKey(const char* pKey,float defaultValue) 根据pkey读取相应的值,如果没有在UserDefault.xml找出则返回defaultValue
double getDoubleForKey(const char* pKey)         根据pkey读取相应的值,如果没有在UserDefault.xml找出则返回0.0
double getDoubleForKey(const cha * pKey,double defaultValue) 根据pkey读取相应的值,如果没有在UserDefault.xml找出则返回defaultValue
void flush() 存储到UserDefault.xml,不写的话不会存入
const string& getXMLFilePath() 获得UserDefault.xml的存储路径


存储代码如下:

  1.         //存储名字
  2.         CAUserDefault::sharedUserDefault()->setStringForKey("name", "zero");
  3.         //存储年龄
  4.         CAUserDefault::sharedUserDefault()->setIntegerForKey("age", 25);
  5.         //存储身高
  6.         CAUserDefault::sharedUserDefault()->setDoubleForKey("height",1.75);
  7.         //存储体重
  8.         CAUserDefault::sharedUserDefault()->setFloatForKey("wight", 75.0f);
  9.         //存储性别 true为男 fasle 女
  10.         CAUserDefault::sharedUserDefault()->setBoolForKey("sex", true);
  11.         //这里一定要提交写入哦,否则不会记录到xml中,下次启动游戏你就获取不到value了
  12.         CAUserDefault::sharedUserDefault()->flush();
复制代码
读取示例代码:

  1.         //读取name
  2.         std::string name =  CAUserDefault::sharedUserDefault()->getStringForKey("name");
  3.         //读取Email,如果没有Email则返回"default"
  4.         std::string email = CAUserDefault::sharedUserDefault()->getStringForKey("Email","default");
  5.         //读取age
  6.         int age = CAUserDefault::sharedUserDefault()->getIntegerForKey("age");
  7.         //读取id,如果没有id则返回10000
  8.         int id = CAUserDefault::sharedUserDefault()->getIntegerForKey("id", 10000);
  9.         //读取身高体重,如果没有找到则返回0
  10.         float height =CAUserDefault::sharedUserDefault()->getFloatForKey("height");
  11.         double weight =CAUserDefault::sharedUserDefault()->getDoubleForKey("weight");
  12.         //读取sex,如果没有找到sex则返回true
  13.         bool sex = CAUserDefault::sharedUserDefault()->getBoolForKey("false", true);
复制代码
最佳答案
0 
Slim 发表于 2015-3-10 17:33:44 | 显示全部楼层
什么时候整个sqlite3的小demo呀

点评

就在今天~  详情 回复 发表于 2015-3-11 10:53
最佳答案
0 
 楼主| 无脑码农 发表于 2015-3-11 10:53:25 | 显示全部楼层
Slim 发表于 2015-3-10 17:33
什么时候整个sqlite3的小demo呀

就在今天~
最佳答案
0 
894613921 发表于 2015-3-13 09:58:08 | 显示全部楼层
android系统上UserDefault.xml会在那个路径下呢? 会被用户看到么?

点评

UserDefault.xml的安全性能并不好,而且存储的是明码。如果想要加密的话需要自己些加密算法。希望安全性能更高的话推荐使用SQlite  详情 回复 发表于 2015-3-13 10:18
最佳答案
0 
 楼主| 无脑码农 发表于 2015-3-13 10:18:14 | 显示全部楼层
894613921 发表于 2015-3-13 09:58
android系统上UserDefault.xml会在那个路径下呢? 会被用户看到么?

UserDefault.xml的安全性能并不好,而且存储的是明码。如果想要加密的话需要自己些加密算法。希望安全性能更高的话推荐使用SQlite

点评

好的 谢谢 你的教程写得真不错哈  详情 回复 发表于 2015-3-13 10:27
最佳答案
0 
894613921 发表于 2015-3-13 10:27:34 | 显示全部楼层
无脑码农 发表于 2015-3-13 10:18
UserDefault.xml的安全性能并不好,而且存储的是明码。如果想要加密的话需要自己些加密算法。希望安全性 ...

好的 谢谢   你的教程写得真不错哈
最佳答案
0 
894613921 发表于 2015-3-14 14:18:44 | 显示全部楼层
CAUserDefault 是不是没有删除掉 键值对的方法啊
最佳答案
0 
小鱼初下水 发表于 2015-4-25 12:19:02 | 显示全部楼层
好像很厉害的样子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

推荐阅读 More>

© 2001-2015 9秒社团

合作伙伴

公司简介 | 联系方式
COPYRIGHT©2015 ZHONGQINGLONGTU NETWORK CO.LTD ALL RIGHTS RESERVED.ICP备11023195号-4
北京中清龙图网络技术有限公司
返回顶部 返回列表