在Cocos2dx中使用RapidJson,它在IOS中的Accept(writer)中崩溃

时间:2016-01-04 02:24:21

标签: ios cocos2d-x rapidjson

我使用Cocos2dx 3.9;并使用rapidjson将CCDictionary转换为字符串;我发现它会在真正的机器中崩溃 - >接受(wirter);但工作将在模拟器中完成。

rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
value->Accept(writer);

1 个答案:

答案 0 :(得分:0)

这是我的错误,我使用:

rapidjson::Value *value = KSCCJsonRapid::jsonValueFromDictionary(dic);
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
value->Accept(writer);
std::string jsonString = buffer.GetString();

但在

static rapidjson::Value* jsonValueFromDictionary(cocos2d::CCDictionary *dic, rapidjson::Document *document = NULL);

,我创建了一个新文档,并将其删除;在Real机器中,内存是有限的;所以价值无效。 它可以通过以下方式纠正:

rapidjson::Document *document = new Document();
rapidjson::Value *value = KSCCJsonRapid::jsonValueFromDictionary(dic, document);
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
value->Accept(writer);
std::string jsonString = buffer.GetString();
delete value;
delete document;