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