iOS cocos2d-X之CCUserDefault的使用(二)

        CCUSerDefault是在cocos2d-X框架之中用于存储轻量级的用户数据而准备的,存放在本地的文件之中,是一个xml文件类型。

        开发环境为Mac,编译环境为XCode,游戏引擎为Cocos2d-X。

        因为刚刚从object-c转过来,真实感受到苹果的封装远远比C++好用多了。单单从#import和 #include去区分就可以看的出来,习惯了#import,看到这个#include

就好纠结啊。再者就是C++的命名空间啊,一开始忘了使用

using namespace cocos2d;

结果导致我使用ccuserDefault半天出不来提示,纠结我半天。

        首先,先把所需的头文件引入,并且添加命名空间。

#include "MainScene.h"
#include "SimpleAudioEngine.h"
#include <CCData.h>
#include <CCUserDefault.h>
#include <curl.h>
using namespace cocos2d;
using namespace CocosDenshion;
using namespace std;



这个CCUSerDefault可以操作的数据类型有int,double,float,string,bool。有一对set和get方法。这里只是演示string,其他的自己去测试。




//初始化开始的主场景
bool MainScene::init()
{
    if (!CCLayer::init()) {
        return false;
    }
    
    //test
    
    CCUserDefault::sharedUserDefault()->setStringForKey("userName","西门吹雪");
    string userName = CCUserDefault::sharedUserDefault()->getStringForKey("userName");
    //userName.c_str(),c_str()这个方法是返回字符串的首地址
    CCLOG("*****userName %s",userName.c_str());

    //CCUserDefault::sharedUserDefault()->flush();
    CCUserDefault::sharedUserDefault()->setStringForKey("userName","火云邪神");
    //flush()方法是将操作的数据存写到本地的xml文件里面,下次你可以访问取出
    CCUserDefault::sharedUserDefault()->flush();
    userName = CCUserDefault::sharedUserDefault()->getStringForKey("userName");
    CCLOG("*****userName %s",userName.c_str());   }
  

这里贴出输出结果:




当我现在把set方法注释掉后,依然可以直接从本地的xml文件取出数据,但是只能取出火云邪神的,不能取出西门吹雪。因为火云邪神调用 flush()方法将数据从内存中的栈区取出,写到了本地磁盘。把结果贴图加上:




这里通过 CCUserdefault:: getXMLFilePath()方法取出xml文件的默认地址:

std::string fileName = CCUserDefault::getXMLFilePath();

输出地址:

Cocos2d: fileName  /Users/liyongjian/Library/Application Support/iPhone Simulator/6.1/Applications/A8E7758F-8B67-4B34-9CA1-4C0712016182/Library/Caches/UserDefault.xml

然后我去这个地址下看了看,发现找不到 UserDefault.xml  这个文件,但是看到了这个


我的存储内容在这个plist文件里面。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值