我在这个小妖精这在它的init方法不明白什么是错误的,得到EXC_BAD_ACCESS,任何提示?
lineDrawer = [[LineDrawer alloc]initWithLineColor:ccc3(color.r, color.g, color.b)];
lineDrawer.position = ccp(0,0);
lineDrawer.anchorPoint = ccp(1,1);
[self addChild:lineDrawer];
[self addChild:head];
[lineDrawer release];
没什么错在这里吗?我可以释放它作为addchild保留对象。 (autorelease也可以)
虽然当我有版本,我得到EXC_BAD_ACCESS(code = 1)稍后。我也试着将release发布到dealloc方法,但它给了我同样的错误。
具有参考lineDrawer的唯一对象是spriteobject(玩家:CCSprite),它在定义和它不会有一个getter所以它甚至不能被其他对象进行访问,所以我不明白如何这可能发生。什么时候可以调用lineDrawer当只有拥有者引用它时,它会被处理掉吗?
它发生在CCLayer的绘制方法内部的CC_NODE_DRAW_SETUP()行上。
任何提示?我知道这些问题在缺乏代码的情况下总是很难解决,但很难知道要向您展示的代码。如果我知道我可以自己解决它。我也尝试在仪器中调试这些,但我不确定在哪里寻找。
更新, 我试图与僵尸调试启用
这是否和你说什么? 这是LineDrawer类。这是我稍微修改过的其他人的课程。
http://pastebin.com/7Uv4GULy
http://pastebin.com/08NHeVt9
我有一种感觉,它的一些方法已排程或东西..
是的,但崩溃发生在我释放播放器类后,因此儿童应该清空权利(和释放) 关于另一件事,它可能看起来有点奇怪,但它实际上是玩家的一部分,所以它对我有意义。也许它应该是LineDrawer:CCSprite,但正如你所说,它应该没关系。我现在试图用CCLOG的方式来追踪它,每次发生这种情况时都会感到沮丧,因为我一般都懒得用xcode或C来贬低它。 – 2012-08-03 00:40:50