如何在Objective-C中将一个对象转换为另一个对象?
我正在研究一个几乎完成的小游戏。事情是它没有任何菜单或游戏超过屏幕等。所有过去都是在一个单独的类游戏中,它具有所有的逻辑和渲染。为了使菜单成为可能,我创建了一个State类,现在有一个StateGame,StateMenu ......问题是我不知道如何将一个状态切换到另一个状态。目前国家班级有一个方法switchTo: (State*)new state
。在该方法中我把:如何在Objective-C中将一个对象转换为另一个对象?
[self release];
self = newState;
这将产生一个段错误,我把它改成:
State *old = self;
self = newState;
AUTORELEASE (old)
这根本不起作用。
很抱歉的格式,但我在手机上打字,反正,任何帮助将不胜感激
好吧,你可能不想要“的对象更改为另一个” ...(不推荐的方式,自我= ...坏主意:[)
你会想要的是一个新的类称为,即GameManager。它将拥有一个属性,可以是游戏,菜单或GameOver实例。它将作为状态机工作(对状态变化执行操作),并根据状态显示游戏,菜单或GameOver屏幕。
谢谢!我这样做是为了让国家自己不能从一个转换到另一个。它现在的作品,它更有意义 – Paskaler
你可以标记问题解决请,谢谢:) –
如果没有更多定义这里描述的类的代码,太难回答了。 – danh
只要我回家,我会发布类定义,谢谢你的快速回复 – Paskaler