[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());
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章