gpt4 book ai didi

ios - 在 iOS 上保存 xml 文件(pugiXml 和 Cocos2d-x)

转载 作者:行者123 更新时间:2023-11-29 13:03:46 25 4
gpt4 key购买 nike

最近我在使用 pugiXml(在 cocos2d-x 引擎中使用)时遇到了一个大问题。

不久,我做了一个问答游戏(在提到的 Cocos2d-x 中)。我将我的问题(和一些其他数据)保存在一个 Xml 文件中。在新游戏中,它们被解析并插入到字典中。如果回答了一个问题,则会将一个指示答案的短字符串(无论是否正确 - Y/N)插入到该 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());

安卓:

  • 它运行良好,尽管我不得不将包含问题的文件复制到/data/data/app/Files/。尽管如此,它仍在许多设备上保留更改。

苹果:

  • 不幸的是,在 iOS 上它无法正常工作。数据被加载和解析(这意味着我实际上可以玩游戏),但它们没有被保存。我试过将文件移动到其他文件夹(从 Resources/Documents 开始,然后是主 Resources 文件夹,Resources/Library/Application Support)。它仍然没有保存数据,我不知道该怎么办。结果是我的统计数据没有被很好地统计(无论你如何回答问题 - 它们都是错误的,因为 Xml 文件没有被更新)。

有人遇到过类似的问题吗?你能帮帮我吗?

最佳答案

我正在我自己的应用程序中做类似的事情,同时使用 pugixml 和 cocos2d-x。所以我可以确认这种组合效果很好。

相反,因为在 iOS 上你不能同时从应用程序包(它是只读的)读取和写入数据,你需要在可写文档目录中实现一个简单的检查 - 如果你在那里保存了文件,加载它,如果没有,从应用程序包中加载。

所以本质上是加载,如果您保存的文件名为“my_save.xml”,这里是一个示例流程:

1) 通过连接可写文件夹路径+您的文件名,在可写文件夹中为您的保存文件构建一个路径。 CCFileUtils 应该有类似 getWritablePath() 的东西。

2) 如果文件夹中存在该文件,则加载它。否则,转到 3)。

3) 使用 CCFileUtils::sharedFileUtils()->fullPathForFilename() 从应用程序包构建到原始数据文件的路径。从那里加载文件。

要保存,只需执行第 1 步并将文件保存在那里。

关于ios - 在 iOS 上保存 xml 文件(pugiXml 和 Cocos2d-x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19146572/

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