CCArrayでAssertに引っかかっちまうんだけど。

2014年3月4日

CCArrayで以下のcreate関数を呼び出すとなぜかAssertが走ってしまう。

CCArray *stapleFood = CCArray::create(new CCString("米"), new CCString("麦"));

う~ん。なぜだ!!
以下の場所で止まっている。

void CCObject::retain(void)
{
    CCAssert(m_uReference > 0, "reference count should greater than 0");
    ++m_uReference;
}

cocos2d-xのバグか?
いや、そんなはずはない。99.999999%は、最底辺の俺が悪いはず。
と、色々調べてみたところ、どうもこの引数の指定の仕方の場合、最後にNULLがいるんじゃないかと推論に達した。
ということで以下のように指定して無事解決!

CCArray *stapleFood = CCArray::create(new CCString("米"), new CCString("麦"), NULL);

しかし、cocos2d-xは、foolproofが甘い気がしますね。
ああ、ちなみにnew CCStringの生成は、メモリリークしていますので悪しからず。
本来は、CCString::create(“米”)とか使わないとだめかな?

cocos2d-x

Posted by koheizi