cocos2dx 3.0 ----- __Array

1、声明

class CC_DLL __Array : public Object, public Clonable

2、__Array内部实现有两个版本,一个由std::vector管理数据,一个由ccArray管理数据。并用宏CC_USE_ARRAY_VECTOR来选择开启哪个版本。

若开启CC_USE_ARRAY_VECTOR版本,cocos会为我们提供一个自动管理指针的类RCPtr。此类可像shared_ptr那样,以对象的形式管理指针,防止内存泄露!

3、__Array的操作

①宏

CCARRAY_FOREACH(arr, obj)

CCARRAY_FOREACH_REVERSE(arr, obj)

CCARRAY_VERIFY_TYPE(arr, type) (用于debug版,release版无效)

arrayMakeObjectsPerformSelector(arr, func, type)

arrayMakeObjectsPerformSelectorWithObject(arr, func, obj, type)

②成员函数

create()

create(Object* object, ...)

 createWithObject(Object* object)

createWithCapacity(ssize_t capacity);

createWithArray(__Array* otherArray);

createWithContentsOfFile(const std::string& pFileName);

createWithContentsOfFileThreadSafe(const std::string& pFileName);

init();

initWithObject(Object* object); 

initWithObjects(Object* object, ...)

initWithCapacity(ssize_t capacity);

initWithArray(__Array* otherArray);

count()

capacity() 

getIndexOfObject(Object* object)

getObjectAtIndex(ssize_t index)

getLastObject()

containsObject(Object* object)

isEqualToArray(__Array* otherArray)

addObject(Object* object);

addObjectsFromArray(__Array* otherArray);

insertObject(Object* object, ssize_t index);

setObject(Object* object, ssize_t index);

fastSetObject(Object* object, ssize_t index)

swap( ssize_t indexOne, ssize_t indexTwo )

removeLastObject(bool releaseObj = true);

removeObject(Object* object, bool releaseObj = true);

removeObjectAtIndex(ssize_t index, bool releaseObj = true);

removeObjectsInArray(__Array* otherArray);

removeAllObjects();

fastRemoveObject(Object* object);

fastRemoveObjectAtIndex(ssize_t index);

exchangeObject(Object* object1, Object* object2);

exchangeObjectAtIndex(ssize_t index1, ssize_t index2);

replaceObjectAtIndex(ssize_t index, Object* object, bool releaseObject = true);

reverseObjects();

reduceMemoryFootprint();

acceptVisitor(DataVisitor &visitor);

clone() const;

Object** begin()

Object** end()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值