关于Cocos2d-x中数据的存储提取和类型转换
1.获得存储在UserDefault中的变量,但是获得的变量是一个String类型的值,要用atoi函数转换为整型,但是atoi函数的传递参数是一个char*类型的值,所以用_Score.c_str()把String转化为Char*
auto userdefault = UserDefault::getInstance();
auto _Score = userdefault->getStringForKey("RewardScore");
_rewardScore = atoi(_Score.c_str());
_rewardScore = _rewardScore + 10;
2.把数据存储在UserDefault中,但是必须先把整型的_rewardScore转化为字符型的变量,用到sprintf函数,转化后就可以存储了
char score_str[100] = { 0 };
sprintf(score_str, "%d", _rewardScore);
userdefault->setStringForKey("RewardScore", score_str);
3.存储在map类型的数据的一系列操作
// 测试代码开始 //Map<std::string, Node*> map1; // empty函数返回Map容器是否为空 //log("%s", map1.empty() ? "map1容器为空!" : "map1容器不为空!"); // size函数返回Map容器中元素的数量 //log("map1.size: %i", (int)map1.size()); //log("bucket_count = %d", static_cast<int>(map1.bucketCount())); //for (int i = 1; i <= 10; i++) //{ // auto node = Node::create(); // node->setTag(i); // // insert函数向容器中插入新元素 // map1.insert(StringUtils::toString(i), node); //} //log("循环给map1容器insertNode之后:"); //log("%s", map1.empty() ? "map1容器为空!" : "map1容器不为空!"); //log("map1.size: %i", (int)map1.size()); //log("----- Map容器中所有key ---------"); //// keys函数获得Map容器的所有键,遍历打印结果并不是插入顺序显示,因为Map是无序的 //auto keys = map1.keys(); //for (const auto& key : keys) //{ // log("key = %s", key.c_str()); //} //// getRandomObject函数获得随机的对象 //log("getRandomObject: %i", map1.getRandomObject()->getTag()); //log("------ 根据值查找key --------"); //// at函数根据键查找返回值 //auto node10Key = map1.at("10"); //map1.insert("100", node10Key); //map1.insert("101", node10Key); //map1.insert("102", node10Key); //// 返回参数V在Map中匹配的所有键的集合 //auto keysForObject = map1.keys(node10Key); //for (const auto& key : keysForObject) //{ // log("key = %s", key.c_str()); //} //// find函数根据key查找返回对应的迭代器,迭代器中包含了键和值 //auto nodeToFind = map1.find("100"); //log("first: %s", nodeToFind->first.c_str()); //log("second: %i", nodeToFind->second->getTag()); //// erase函数删除容器中的元素 //log("------ erase之后 --------"); //// 根据key删除 //map1.erase("1"); //// 根据迭代器删除 //map1.erase(map1.find("2")); //// 根据键集合删除 //std::vector<std::string> itemsToRemove; //itemsToRemove.push_back("3"); //itemsToRemove.push_back("4"); //itemsToRemove.push_back("5"); //map1.erase(itemsToRemove); //for (const auto& key : map1.keys()) //{ // log("key = %s", key.c_str()); //} //// clear函数清空容器 //map1.clear(); //log("------ clear之后 --------"); //log("%s", map1.empty() ? "map1容器为空!" : "map1容器不为空!"); //// size函数返回Map容器中元素的数量 //log("map1.size: %i", (int)map1.size());