Something strange with the example 'TMXReadWriteTest' in 'TestCpp' project

I’m a rookie and learned cocos2d-x as shor time before, and i start with the “TestCPP” project, I go ahead until find something strange with TMXReadWriteTest, the brief code is here:

TMXReadWriteTest::TMXReadWriteTest()
{
m_gid = 0;

CCTMXTiledMap* map = CCTMXTiledMap::create(“TileMaps/orthogonal-test2.tmx”);
addChild(map, 0, kTagTileMap);

CCSize CC_UNUSED s = map~~>getContentSize;
CCLOG (“ContentSize: %f, %f”, s.width,s.height);

CCTMXLayer* layer = map~~>layerNamed(“Layer 0”);
layer~~>getTexture~~>setAntiAliasTexParameters;
map~~>setScale;
CCSprite tile0 = layer~~>tileAt);
CCSprite *tile1 = layer~~>tileAt);
CCSprite
tile2 = layer~~>tileAt(ccp(3,62));//ccp(1,62));
CCSprite *tile3 = layer~~>tileAt);
tile0~~>setAnchorPoint( ccp(0.5f, 0.5f) );
tile1~~>setAnchorPoint );
tile2~~>setAnchorPoint( ccp(0.5f, 0.5f) );
tile3~~>setAnchorPoint );
CCActionInterval* move = CCMoveBy::create);
CCActionInterval* rotate = CCRotateBy::create;
CCActionInterval* scale = CCScaleBy::create;
CCActionInterval* opacity = CCFadeOut::create;
CCActionInterval* fadein = CCFadeIn::create;
CCActionInterval* scaleback = CCScaleTo::create;
CCActionInstant* finish = CCCallFuncN::create);
CCSequence* seq0 = CCSequence::create;
CCActionInterval* seq1 = >autorelease);
CCActionInterval* seq2 = >autorelease);
CCActionInterval* seq3 = >autorelease);
tile0
>runAction;
tile1
>runAction;
tile2
>runAction;
tile3~~>runAction(seq3);

m_gid = layer~~>tileGIDAt);
////—~~CCLOG (“Tile GID at:(0,63) is: d”, m_gid);

 //schedule(schedule\_selector(TMXReadWriteTest::updateCol), 2.0f); 
 //schedule(schedule\_selector(TMXReadWriteTest::repaintWithGID), 2.05f);
 //schedule(schedule\_selector(TMXReadWriteTest::removeTiles), 1.0f); 

////----CCLOG("++++atlas quantity: d", layer~~\>textureAtlas~~\>getTotalQuads);

////—CCLOG ("++++children: %d", layer->getChildren()>count() );

m_gid2 = 0;
}

void TMXReadWriteTest::removeSprite(CCNode* sender)
{
////—CCLOG (“removing tile: %x”, sender);
CCNode* p = sender)
>getParent();

if §
{
p~~>removeChildsender, true);
}
//////—~~CCLOG (“atlas quantity: %d”, p->textureAtlas()->totalQuads());
}

(I deleted 3 schedules so that to see how’s running step by step) The code setup with 4 specify sprites will be removed from map finally, but i found the most of them wasn’t removed and some no related sprites was delete at the end.
The results on my mechine is sprite(2,63),(3,62),(2,62) wasn’t removed, sprite(1,63) and the no related sprite(4, 63) was removed.
Is anything in my comprehension wrong or a bug? thanks