RW240I6{F0LD0{W.jpg)
这个地方有时候会报错
我看了引用计数
是一个已经被释放了的widget
但是为什么他还会遍历到这个widget?
下一句代码就会报错,空hitWidget->onTouchEnded(pTouch, pEvent);
同样的问题,期待官方解决!!!
只能说它被释放了,但是它没从父节点中移除
如何解决?游戏经常因为这个原因崩溃掉。求解决方案。
— Begin quote from ____
引用第4楼ixgsoul于2014-04-30 16:23发表的 回 3楼(孤独の快乐) 的帖子 :
如何解决?游戏经常因为这个原因崩溃掉。求解决方案。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=199952&pid=941572
— End quote
不知道,可能是你程序哪里写的有问题吧,这个不好说
- -…请不要做出这样的回答亲,我代码可以确认没问题,引用计数直接是一个被释放后的数值,而且不只有我遇到这个问题吧?
这个引用计数都不要自己去管理,所有的UI都已经实现了自动引用计数,如果没有自己加retain,就不要自己release。
如果确认自己的代码没问题的话,可以把工程发给我们。
用来做这个效果的节点没有retain过。
还有这个是我项目的工程。。。。不可能发给你们的啊
哎。
— Begin quote from ____
引用第6楼ixgsoul于2014-05-01 15:21发表的 回 5楼(孤独の快乐) 的帖子 :
- -…请不要做出这样的回答亲,我代码可以确认没问题,引用计数直接是一个被释放后的数值,而且不只有我遇到这个问题吧? http://www.cocoachina.com/bbs/job.php?action=topost&tid=199952&pid=941955
— End quote
又不知道你代码怎么写,你要我怎么回答?
目前是没见过有人反映这个问题
而且都是在TouchEnd这个地方发生这个错误
恩,好吧。
兄台?你的情况如何?
我也发现了 是touchgroup的bug吧 我正准备修改,,,还在看代码
求解知道原因了么 
因为 那个widget 在 选中的时候是有的,但是在onTouchEnded的时候却已经被移除了
移除的位置 是在removeObject的时候 release了最后一个引用(之前已经被removeFromParent 并且只剩下这个引用了)
所以需要现判定下,再调用onTouchEnd
Widget* hitWidget = (Widget*)(selectedWidgetArray->arr);
int cnt = hitWidget->retainCount();
m_pSelectedWidgets->removeObject(hitWidget);
if (cnt > 1)
hitWidget->onTouchEnded(pTouch, pEvent);
ps: 版主这样回复不太好。。