【发布时间】:2013-10-02 20:48:38
【问题描述】:
最近我遇到了一个关于 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());
安卓:
- 它运行良好,尽管我不得不将带有问题的文件复制到 /data/data/app/Files/ 。尽管如此,它仍在许多设备上保留更改。
iOS:
- 不幸的是,在 iOS 上它不起作用。数据被加载和解析(这意味着我可以真正玩游戏),但它们没有被保存。我尝试将文件移动到其他文件夹(从 Resources/Documents 开始,然后是主 Resources 文件夹、Resources/Library/Application Support)。它仍然没有保存数据,我不知道该怎么做。结果是我的统计数据没有被很好地统计(不管你如何回答问题 - 所有问题都是错误的,因为 Xml 文件没有被更新)。
有没有人遇到过类似的问题? 你能帮帮我吗?
【问题讨论】:
-
如何获取文档目录?检查这个:stackoverflow.com/questions/6907381/…
-
我正在使用 fullPathForFilename 方法(o_QA 是一个字符串)。我尝试使用 o_QA 值,例如“Documents/Questions.xml”(在 Resources 中创建了 Documents 文件夹)、“Questions.xml”(在 Resources 文件夹中的 Questions.xml)或“Libary/Application Support/Questions.xml”(创建了 Library/资源文件夹中的应用程序支持文件夹结构)。我错了吗,我应该首先获取 Documents 文件夹的另一个路径(类似于 Android),这不是在资源中创建的文件夹吗?然后在那里复制我的文件并处理该复制的文件?你知道(在 cocos2d-x 中)获取这样一个文件夹的方法吗?
-
听起来你试图写入应用程序包中的路径,这不起作用,包是只读的。是的,你需要使用 iOS 系统方法获取文档目录来获取这些路径因为它们位于应用程序沙箱目录中的捆绑包之外。