最近我遇到了pugiXml的一个大问题(在cocos2d-x引擎中使用)。
很快,我做了一个问答游戏(在提到的Cocos2d-x中)。我将问题(以及其他一些数据)保存在Xml文件中。在新游戏中,它们被解析并插入到词典中。如果问题得到解答,则会在该Xml文件中插入一个表示答案的短字符串(是否良好 - 是/否)(在该特定问题下面)。之后,我使用这些数据来显示统计数据(我用好的答案计算问题的百分比 - 这是计算Y的数量除以问题的数量,乘以100)。
我用:
CCFileUtils::sharedFileUtils()->fullPathForFilename(o_QA);
获取文件,稍后
pBuffer = CCFileUtils::sharedFileUtils()->getFileData(fullPath.c_str(), "rb", &bufferSize);
将文件放入缓冲区和
pugi::xml_parse_result result = doc.load_buffer(pBuffer,bufferSize);
解析数据并开始处理它。
最后,我用以下文件保存文件:
doc.save_file(fullPath.c_str());
机器人:
的iOS:
有没有人遇到过类似的问题? 你能帮我吗?
答案 0 :(得分:1)
我正在使用pugixml和cocos2d-x在我自己的应用程序中做类似的事情。所以我可以确认这种组合效果很好。
相反,因为在iOS上你不能同时从应用程序包中读取和写入数据(这是只读的),你需要在可写文档目录中实现一个简单的检查 - 如果你在那里保存了文件,加载它,如果没有,从应用程序包加载。
因此,从本质上讲,如果您保存的文件名是“my_save.xml”,那么这是一个示例流程:
1)通过连接可写文件夹路径+文件名,在可写文件夹中构建保存文件的路径。 CCFileUtils应该有类似getWritablePath()的东西。
2)如果文件存在于文件夹中,请加载它。否则,请转到3)。
3)使用CCFileUtils :: sharedFileUtils() - > fullPathForFilename()构建应用程序包中原始数据文件的路径。从那里加载文件。
要保存,只需执行步骤1并将文件保存在那里。