ios - Cocos2d : Should I use only (id)init for initializing, 或者我可以使用 (void)onEnter 进行后期分配吗?

标签 ios architecture cocos2d-iphone initialization allocation

在学习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/

相关文章:

ios - Cocos2d : Can't seem to create child sprites correctly using class or instance method

ios - 在 iOS 上访问 NSUserDefaults 被认为便宜吗?

iphone - uiscrollview 捕获滚动尝试

ios - 多次拆分 NSStrings

php - 如何在大型单体网络应用程序中构建缓存存储/缓存清除?

node.js - 哪种技术可以与Cassandra以及NodeJS连接?

iphone - PushViewController 无法通过 AppDelegate 工作

asp.net-core - 基于聚合的ASP.NET Core Web API拆分 Controller

iphone - 如何使用 cocos2d 在 iphone 应用程序中使用 MYSQL 数据库连接?

ios - 为 iPhone 和 iPad(普通版和 Retina 版)制作通用游戏