我试图在一个数组中跟踪我的精灵,在图层中添加和删除它们,然后最终将它们从数组中清除。
我正在使用以下代码:
Sprite * Trees[50];
Layer * Forest;
Forest = [Layer node];
Forest.isTouchEnabled = YES;
[self addChild:Forest z:30];
// do this a bunch of times
Trees[0] = [[Sprite spriteWithFile:@"mytree.png"] retain];
[Trees[0] setPosition:cpv(240,160)];
[Forest addChild:Trees[0] z:5];
然后当我想摧毁一棵树时,我使用:
[Forest removeChild:Trees[0] cleanup:YES];
[Trees[0] release];
我的问题是,当我查看 Instruments 时,我永远不会回收该内存,永远不会有下降。我认为通过释放精灵可以释放内存。我这样做完全错了吗?