gpt4 book ai didi

c++ - Cocos2D X : How to check if a key exists for a plist file?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:52:15 26 4
gpt4 key购买 nike

我正在使用以下代码从我的游戏的 plist 中读取数据:

int levelNum = SOME_VALUE_FROM_OUTSIDE;

ValueMap mapFile = FileUtils::getInstance()->getValueMapFromFile("LevelDetails.plist");

std::string strLevel = std::to_string(levelNum);

ValueMap mapLevel = mapFile.at(strLevel).asValueMap();

LevelDetails.plist 是一个以字典为根的 plist。问题是有时可能没有名为 levelNum/strLevel 的键。所以我必须在运行此行之前检查 key 是否存在:

ValueMap mapLevel = mapFile.at(strLevel).asValueMap(); //Throws exception occasionally

那么检查名为 levelNum/strLevel 的键是否存在的正确方法是什么?

最佳答案

因为 ValueMap 是一个 std::unordered_map,你可以使用那个类的方法:

if (mapFile.count(strLevel).count() > 0) {
ValueMap mapLevel = mapFile.at(strLevel).asValueMap();
}

在cocos2d-x中ValueMap的声明是:

typedef std::unordered_map<std::string, Value> ValueMap;

关于c++ - Cocos2D X : How to check if a key exists for a plist file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26424168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com