[求助] 指针丢失,莫名的变成野指针了

— Begin quote from ____

引用第17楼lion于2015-03-16 13:46发表的 :
千万不要在网络线程New/Create Node等。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=288291&pid=1259165

— End quote

呵呵,有同感,亲身经历过类似的BUG,千万别在收到一条消息后,立刻调用2dx主线程里包含类似Node::create()的函数;应该把消息缓存在一个queue里,然后用主线程逐条去读queue里的消息。

现在就是用主线程逐条去读queue里的消息啊。

Message这个类是继承ccobject,然后在网络线程创建,加锁放入队列,然后在主线程再读回这个对象,是这样么?

如果是的不要用create,直接用new。加锁放入队列后才调用autorelease

等于把create方法拆开。

以前用CCDictionary作队列,发现是个坑,之后的项目直接换成string,然后在主线程解析了

在析构函数打个断点, 触发这个bug的时候看看有没有进入断点, 不就知道是被析构了, 还是指针值被换掉了, 如果是被析构了, 看看调用栈堆, 顺着找上去再慢慢分析吧

一天出现也就一两次 都是看的跟踪日志 很难手动测 就是想让大家分析下什么造成的