在学习Cocos2d的过程中,我发现- (void)onEnter
、- (void)onExit
可以像它们的对应项一样使用,- (void )viewDidLoad
, - iOS UIKit 的 (void)viewDidUnload
。
我确实知道它们在技术上并不能很好地替代原始的 - (id)init
,而且我经常看到学习 Cocos2d 的指导性文本仅使用 - (id)init
> 所有属性和变量的方法。
但是,如果我使用 - (void)onEnter
进行分配和初始化,我可以引用 self.parent
以获得更简洁的代码。
可以安全地假设我可以继续使用 - (void)onEnter 进行分配和初始化,而不用担心这是否是使用 Cocos2d 框架进行开发的正确方法?
最佳答案
假设您对初始化和内存管理非常小心,这听起来是一种完全合理的处理代码的方法,但正如您提到的,它不是标准的,因此请注意一些陷阱。
-(void) onEnter
和 -(void) onExit
方法实际上更像 -(void) viewWillAppear
和 -(void) viewWillDisappear
优于 -(void) viewDidLoad
和 -(void) viewDidUnload
注意:
- onEnter 也会在节点的所有子节点上递归调用。
- onEnter 可能会被调用多次,具体取决于您处理场景的方式,而 init 只会被调用 一次。小心你的对象不会因意外分配而泄漏 他们不止一次。
关于ios - Cocos2d : Should I use only (id)init for initializing, 或者我可以使用 (void)onEnter 进行后期分配吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7257899/