我刚刚将一个cocos2d v1.x项目迁移到了v2.x,并且一切似乎都没有问题。然后我打开了ARC。但现在,CCLayer的一个dealloc永远不会被调用。在转换过程中,该方法中的大部分内容都消失了,但只需要留下一个CCLog来指示图层何时解除分配。我不确定从无弧到弧有什么问题。各种消息来源提到,必须有其他的东西保留它。这很奇怪,因为它释放了所有这些变化。我还没有完成特定的代码(该层有很多代码)。但只是想看看有没有关于cocos2d v2.x + ARC的常见错误。cocos2d v2.x打开arc后,cclayer没有得到dealloc
1
A
回答
1
刚解决这个问题。为什么cclayer得到了保留在ARC情况下(貌似好转换后),但之前不就是我宣布实例变量
@interface SomeObject {
CCNode *_parent;
}
和我没有为它定义一个@property的原因。
我在实现中的某处做了一个任务。在没有ARC的情况下似乎没有问题,因为在_parent上可能没有任何保留。但在ARC之后,似乎_parent现在是一个强大的参考。这是造成亲子风格的循环引用。我认为一个解决办法是使其成为一个不安全的未保存的。但我没有打扰,因为它是一些旧的代码,我实际上忘记了注释。我摆脱了这个伊娃。我认为这可能是第一次尝试转换为ARC时的一个陷阱。它也意味着不使用@property声明一个ivar并不是一个好习惯,当你转换旧项目时可以咬这个东西。
相关问题
- 1. 打开ARC后UITableViewCell.contentView错误
- 2. cocos2D CCLayer或CCLayerColor setOpacity
- 3. Cocos2d v2 + Chipmunk:向CCLayer添加形状时失败
- 4. CCLayer的cocos2d模态窗口
- 5. 我创建了一个没有ARC的新项目,但没有dealloc方法
- 6. Cocos2d:从另一个CCLayer(父母?)调用函数CCLayer
- 7. 狗头人/ Cocos2D - 应用程序在最小化后重新打开后变得没有响应
- 8. XCode 4.2和ARC,为什么它没有打开我?
- 9. 没有做的dealloc
- 10. Android上的Cocos2D-X没有运行
- 11. Swift没有ARC
- 12. objective-c对象没有得到dealloc:编辑
- 13. CCGLSurfaceView/CCLayer(cocos2d-android)中的透明背景?
- 14. CCMenu中的锚点或cocos2d中的CCLayer
- 15. 如何在cocos2d中移动CCLayer
- 16. Cocos2D CCMenuItem通过其他CCLayer不响应
- 17. dealloc得不到控制
- 18. 自定义dealloc和ARC(Objective-C)
- 19. 在ARC桥接投和Cocos2d
- 20. cocos2d是否支持ARC?
- 21. if语句后文件没有打开
- 22. ccTouches在cocos2D中没有开火?
- 23. UIImage dealloc从来没有叫
- 24. 如何在cocos2d-x项目中打开pdf文件?
- 25. 无法通过fstream打开文件cocos2d-x
- 26. Xerces-C:从v2.x迁移到v3.x?
- 27. 消息框上打开文件并没有得到关注
- 28. 似乎没有得到加速,我应该在打开MP
- 29. cocos2d-x?
- 30. 删除的Recaptcha v2的有问题正在得到解决后
相关代码在哪里? – LearnCocos2D 2013-04-29 07:52:03
我已经通过定义'OnExit()'和'OnEnter()'方法而不是分别在它们内部调用'[super onExit]'和'[super onEnter]'来烧毁。但除此之外,我们需要一些代码。 – 2013-04-29 16:01:50
谢谢。我也检查过这些。 – kawingkelvin 2013-04-29 16:10:39