如何在Objective-C中将一个对象转换为另一个对象?

问题描述:

我正在研究一个几乎完成的小游戏。事情是它没有任何菜单或游戏超过屏幕等。所有过去都是在一个单独的类游戏中,它具有所有的逻辑和渲染。为了使菜单成为可能,我创建了一个State类,现在有一个StateGame,StateMenu ......问题是我不知道如何将一个状态切换到另一个状态。目前国家班级有一个方法switchTo: (State*)new state。在该方法中我把:如何在Objective-C中将一个对象转换为另一个对象?

[self release]; 
self = newState; 

这将产生一个段错误,我把它改成:

State *old = self; 
self = newState; 
AUTORELEASE (old) 

这根本不起作用。

很抱歉的格式,但我在手机上打字,反正,任何帮助将不胜感激

+0

如果没有更多定义这里描述的类的代码,太难回答了。 – danh

+0

只要我回家,我会发布类定义,谢谢你的快速回复 – Paskaler

好吧,你可能不想要“的对象更改为另一个” ...(不推荐的方式,自我= ...坏主意:[)

你会想要的是一个新的类称为,即GameManager。它将拥有一个属性,可以是游戏,菜单或GameOver实例。它将作为状态机工作(对状态变化执行操作),并根据状态显示游戏,菜单或GameOver屏幕。

+0

谢谢!我这样做是为了让国家自己不能从一个转换到另一个。它现在的作品,它更有意义 – Paskaler

+0

你可以标记问题解决请,谢谢:) –