0

iPhone 应用程序中的状态模式——在我的例子中,是一个相对轻量级的实用程序应用程序——是否使用太多内存?

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

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

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

4

1 回答 1

1

不值得担心。除非您的状态非常复杂,或者您有成千上万的状态,否则您的应用程序中的任何艺术或媒体文件绝对会淹没它们。

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

与应用程序的“工作”部分相比,由于挂在不需要的图形或声音上,您更有可能遇到内存问题。

于 2009-06-15T00:48:30.327 回答