当前位置: 首页>>代码示例>>C++>>正文


C++ CCDictionary::retain方法代码示例

本文整理汇总了C++中CCDictionary::retain方法的典型用法代码示例。如果您正苦于以下问题:C++ CCDictionary::retain方法的具体用法?C++ CCDictionary::retain怎么用?C++ CCDictionary::retain使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CCDictionary的用法示例。


在下文中一共展示了CCDictionary::retain方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: startElement

 void startElement(void *ctx, const char *name, const char **atts)
 {
     CC_UNUSED_PARAM(ctx);
     CC_UNUSED_PARAM(atts);
     std::string sName((char*)name);
     if( sName == "dict" )
     {
         m_pCurDict = new CCDictionary();
         if(m_eResultType == SAX_RESULT_DICT && m_pRootDict == NULL)
         {
             // Because it will call m_pCurDict->release() later, so retain here.
             m_pRootDict = m_pCurDict;
             m_pRootDict->retain();
         }
         m_tState = SAX_DICT;
         
         CCSAXState preState = SAX_NONE;
         if (! m_tStateStack.empty())
         {
             preState = m_tStateStack.top();
         }
         
         if (SAX_ARRAY == preState)
         {
             // add the dictionary into the array
             m_pArray->addObject(m_pCurDict);
         }
         else if (SAX_DICT == preState)
         {
             // add the dictionary into the pre dictionary
             CCAssert(! m_tDictStack.empty(), "The state is wrong!");
             CCDictionary* pPreDict = m_tDictStack.top();
             pPreDict->setObject(m_pCurDict, m_sCurKey.c_str());
         }
         
         m_pCurDict->release();
         
         // record the dict state
         m_tStateStack.push(m_tState);
         m_tDictStack.push(m_pCurDict);
     }
     else if(sName == "key")
     {
         m_tState = SAX_KEY;
     }
     else if(sName == "integer")
     {
         m_tState = SAX_INT;
     }
     else if(sName == "real")
     {
         m_tState = SAX_REAL;
     }
     else if(sName == "string")
     {
         m_tState = SAX_STRING;
     }
     else if (sName == "array")
     {
         m_tState = SAX_ARRAY;
         m_pArray = new CCArray();
         if (m_eResultType == SAX_RESULT_ARRAY && m_pRootArray == NULL)
         {
             m_pRootArray = m_pArray;
             m_pRootArray->retain();
         }
         CCSAXState preState = SAX_NONE;
         if (! m_tStateStack.empty())
         {
             preState = m_tStateStack.top();
         }
         
         if (preState == SAX_DICT)
         {
             m_pCurDict->setObject(m_pArray, m_sCurKey.c_str());
         }
         else if (preState == SAX_ARRAY)
         {
             CCAssert(! m_tArrayStack.empty(), "The state is wrong!");
             CCArray* pPreArray = m_tArrayStack.top();
             pPreArray->addObject(m_pArray);
         }
         m_pArray->release();
         // record the array state
         m_tStateStack.push(m_tState);
         m_tArrayStack.push(m_pArray);
     }
     else
     {
         m_tState = SAX_NONE;
     }
 }
开发者ID:QiuleiWang,项目名称:cocos2d-x-2.x-utils,代码行数:92,代码来源:EncryptUtils.cpp


注:本文中的CCDictionary::retain方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。