[cocos2d-x] CCArray使用注意

在cocos2d-x中创建一个类初始化时候创建其变量CCArray,添加2个CCArray作为内容。

if (!alliesOfTeams || alliesOfTeams->count() <= 0) {
        alliesOfTeams = CCArray::create(CCArray::create(),CCArray::create(),NULL);
        CCLOG("allies of teams count = %d",alliesOfTeams->count());
    }

然后当其他地方调用这个alliesOfTeams->count()时候报错了。


后来发现,CCArray跟Objectiv-c中的NSArray是类似的,但objc有自动释放机制,也就是引用情况会自动retain,但cocos2dx是没有这样的机制的。我们需要创建时候retain一下,保证方法返回时候没有被释放掉

if (!alliesOfTeams || alliesOfTeams->count() <= 0) {
        alliesOfTeams = CCArray::create(CCArray::create(),CCArray::create(),NULL);
        alliesOfTeams->retain();
        CCLOG("allies of teams count = %d",alliesOfTeams->count());
    }


你可能感兴趣的:([cocos2d-x] CCArray使用注意)