#ifndef __CCDICTIONARY_H__ #define __CCDICTIONARY_H__ //需要哈希表的支持 #include "support/data_support/uthash.h" #include "CCObject.h" #include "CCArray.h" #include "CCString.h" //Cocos2d命名空间 NS_CC_BEGIN //声明一下CCDictionary类,因为CCDictElement要用到CCDictionary指针。 class CCDictionary; //词典元素,或者简单理解就是词典中的一个词汇。我们从小查词典都知道,通过词汇名称或索引查找到对应的解释。解释与词汇名称或索引之间是一一对应的关系。与这种关系相同,在这个词汇类中存储一个字符串名称或一个索引以及与其相应的CCObject指针,这个CCObject指针就相当于是我们查出来的解释一样与字符串名称或索引构成了对应关系。 class CC_DLL CCDictElement { //定义字符串名称的长度. #define MAX_KEY_LEN 256 public: //构造函数。 //参1:字符串名称。 //参2:对应的CCObject指针。 CCDictElement(const char* pszKey, CCObject* pObject) { //初始化。 init(); m_pObject = pObject; // const char* pStart = pszKey; //字符串的字节长度 int len = strlen(pszKey); if (len > MAX_KEY_LEN ) { //如果长度大于MAX_KEY_LEN,截取后面MAX_KEY_LEN长度字符串。 char* pEnd = (char*)&pszKey[len-1]; pStart = pEnd - (MAX_KEY_LEN-1); } //字符串COPY strcpy(m_szKey, pStart); } //构造函数 //参1:所在哈希表中的索引 //参2:对应的CCObject指针。 CCDictElement(int iKey, CCObject* pObject) { init(); m_iKey = iKey; m_pObject = pObject; } //取得名称字符串。 inline const char* getStrKey() const { CCAssert(m_szKey[0] != '