【问题标题】:Use RapidJson in Cocos2dx, it crash in Accept(writer) in IOS在 Cocos2dx 中使用 RapidJson,它在 IOS 的 Accept(writer) 中崩溃
【发布时间】:2016-01-04 02:24:20
【问题描述】:

我使用的是 Cocos2dx 3.9;并使用 rapidjson 将 CCDictionary 转换为字符串;我发现它会在真机中的 value->Accept(wirter) 崩溃;但可以在模拟器中工作。

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

【问题讨论】:

    标签: ios cocos2d-x rapidjson


    【解决方案1】:

    这是我的错误,我使用:

    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);
    

    ,我创建一个新文档,然后删除它;在真机中,内存是有限的;所以该值无效。 它可以通过以下方式更正:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      相关资源
      最近更新 更多