您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx CCArray

2016-04-15 09:58 435 查看
CCArray 里有很多的方法,先来看看里面是有哪里方法是做什么用的

 

/** 创建一个数组 */  

static CCArray* create();  

/** 通过一些对象创建一个数组 */  

static CCArray* create(CCObject* pObject, ...);  

/** 创建一个数组,并将对象放进去 */  

static CCArray* createWithObject(CCObject* pObject);  

/** 创建一个数组,设定估计容量 */  

static CCArray* createWithCapacity(unsigned int capacity);  

/** 同一个一个数组创建一个数组 */  

static CCArray* createWithArray(CCArray* otherArray);  

/** 

 @brief   通过文件导入一个数组 

 @param   pFileName  一个*.plist格式的文件 

 @return  返回CCArray数组指针 

 */  

static CCArray* createWithContentsOfFile(const char* pFileName);  

  

/* 

 @brief 同上, 但是不会调用autorelease, 所以调用之后需要执行release(). 

 */  

static CCArray* createWithContentsOfFileThreadSafe(const char* pFileName);  

  

/** 初始化数组 */  

bool init();  

/** 通过一个对象初始化数组 */  

bool initWithObject(CCObject* pObject);  

/** 通过一些对象初始化数组 */  

bool initWithObjects(CCObject* pObject, ...);  

/** 初始化数组,设定估计容量 */  

bool initWithCapacity(unsigned int capacity);  

/** 通过一个数组初始化数组 */  

bool initWithArray(CCArray* otherArray);  

  

// 查询数组函数  

/** 返回数组元素的数量 */  

unsigned int count() const;  

/** 返回数组的估计容量 */  

unsigned int capacity() const;  

/** 通过对象去获得这个对象在数组中的下标,如果数组中没有这个对象会返回UINT_MAX */  

unsigned int indexOfObject(CCObject* object) const;  

/** 通过一个正确的下标去获得一个元素 */  

CCObject* objectAtIndex(unsigned int index);  

/** 返回最后一个元素 */  

CCObject* lastObject();  

/** 返回一个随机元素 */  

CCObject* randomObject();  

/** 判断数组是否包含该对象 */  

bool containsObject(CCObject* object) const;  

/** 从 1.1 之后,两个数组进行对比 */  

bool isEqualToArray(CCArray* pOtherArray);  

  

// 添加函数  

/** 添加一个对象 */  

void addObject(CCObject* object);  

/** 添加数组所有元素 */  

void addObjectsFromArray(CCArray* otherArray);  

/** 插入一个对象到一个正确的下标位置 */  

void insertObject(CCObject* object, unsigned int index);  

  

// 删除函数  

/** 删除最后一个元素 */  

void removeLastObject(bool bReleaseObj = true);  

/** 删掉数组中形参的元素 */  

void removeObject(CCObject* object, bool bReleaseObj = true);  

/** 通过一个正确的下标去删除元素 */  

void removeObjectAtIndex(unsigned int index, bool bReleaseObj = true);  

/** 通过一个数组去删除元素 */  

void removeObjectsInArray(CCArray* otherArray);  

/** 删除所有元素 */  

void removeAllObjects();  

/** 通过一个快速方式去删除元素 */  

//快速方式就是:删除这个元素之后,将最后一个元素填充到删除位置。这样会打乱顺序,慎用  

void fastRemoveObject(CCObject* object);  

/** 通过一个快速方式去删除下标位置的元素 */  

void fastRemoveObjectAtIndex(unsigned int index);  

  

//  重新安排内容  

/** 交换元素 */  

void exchangeObject(CCObject* object1, CCObject* object2);  

/** 交换制定的两下标的元素 */  

void exchangeObjectAtIndex(unsigned int index1, unsigned int index2);  

/** 用一个对象去替换指定下标的元素 */  

void replaceObjectAtIndex(unsigned int uIndex, CCObject* pObject, bool bReleaseObject = true);  

/** 翻转数组 */  

void reverseObjects();  

/* 缩小数组,让数组占用的内存符合元素的数量 */  

void reduceMemoryFootprint();  

 

CCArray的几个宏 

[cpp]  

#define CCARRAY_FOREACH(__array__, __object__)  //遍历所有元素,后面会举例  

#define CCARRAY_FOREACH_REVERSE(__array__, __object__)     //反序遍历元素  

#define CCARRAY_VERIFY_TYPE(__array__, __type__)   //判断数组元素是否属于某类对象  

#define arrayMakeObjectsPerformSelector(pArray, func, elementType)//让数组中所有元素去执行某一个函数  

#define arrayMakeObjectsPerformSelectorWithObject(pArray, func, pObject, elementType)//让数组中所有元素去执行某一个函数 ,带参数  

 

举例:

 

CCArray* arr = CCArray::create();  

CCObject* pNode;  

CCARRAY_FOREACH(arr,pNode)  

{  

    pNode->retainCount();  

    //遍历arr数组,让每一个元素执行retainCount()函数  

}

个人理解为:CCArray也就是动态的数组
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: