iPhone应用程序中的状态模式(内存使用)

时间:2009-06-15 00:44:22

标签: iphone memory-management state

iPhone应用程序中的state pattern - 在我的情况下,是一个相对轻量级的实用程序应用程序 - 是否使用了太多内存?

据我所知,state pattern使用了几个类;这些类代表不同的状态。所有不同的状态对象都被实例化并存储在不同的指针变量中,直到需要状态为止,此时它被设置为curState对象。

我认为我可以延迟加载每个状态对象以节省一些内存和加载时间;如果我的应用程序收到内存警告,我可以释放对象。

但我想知道的是,这种模式是否会在iPhone OS应用程序中使用太多内存以供一般使用? iPhone开发人员应该远离这种模式吗?是否有更适合iPhone OS的不同模式?

1 个答案:

答案 0 :(得分:1)

不值得担心。除非您的州非常复杂,或者您拥有成千上万的州,否则您申请中的任何艺术或媒体文件都会绝对淹没它们。

我的意思是一般 - 不要冒汗模型对象的内存使用量。就内存使用而言,Objective-C对象非常轻量级。如果你有一个相当典型的模型类,比如说有六个字段,每个字段都是指向其他对象的指针,那么该类的每个实例的总内存使用量大约是32字节左右。如果你把1000个放入一个数组或一些其他数据结构中,那就会使用与128x128位图一样多的内存。

由于您需要使用不需要的图形或声音,因此您更有可能遇到内存问题,而不是应用程序的“工作”部分。