kelvict的专栏

博客中成长

【Pia开发日记】cocos2d-x CCDictionary allKeys用法

CCArray* CCDictionary::allKeys()
{
    //取得词汇的数量
    int iKeyCount = this->count();
    if (iKeyCount <= 0) return NULL;
    //创建一个iKeyCount大小的CCArray
    CCArray* pArray = CCArray::createWithCapacity(iKeyCount);
    //定义临时词汇指针变量。
    CCDictElement *pElement, *tmp;
    if (m_eDictType == kCCDictStr)
    {    //如果当前词典查询类型是通过名称字符串。
        //遍历所有词汇。
        HASH_ITER(hh, m_pElements, pElement, tmp) 
        {
            //取得每一个词汇的名称字符串放入CCArray中。
            CCString* pOneKey = new CCString(pElement->m_szKey);
            pOneKey->autorelease();
            pArray->addObject(pOneKey);
        }
    }
    else if (m_eDictType == kCCDictInt)
    {    //如果当前词典查询类型是通过索引。
        //遍历所有词汇。

        HASH_ITER(hh, m_pElements, pElement, tmp) 
        {
            //取得每一个词汇的名称字符串放入CCArray中。
            CCInteger* pOneKey = new CCInteger(pElement->m_iKey);
            pOneKey->autorelease();
            pArray->addObject(pOneKey);
        }
    }
    
    return pArray;
}
以上为CCDictionary::allKeys(源码),由

            CCString* pOneKey = new CCString(pElement->m_szKey);
            pOneKey->autorelease();
            pArray->addObject(pOneKey);
            CCInteger* pOneKey = new CCInteger(pElement->m_iKey);
            pOneKey->autorelease();
            pArray->addObject(pOneKey);

可知,可以将键值强制类型转换成CCString 或者CCInteger

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭