Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone应用程序中的状态模式(内存使用)_Iphone_State Pattern_Memory Management - Fatal编程技术网

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

iPhone应用程序中的状态模式(内存使用),iphone,state-pattern,memory-management,Iphone,State Pattern,Memory Management,iPhone应用程序(在我的例子中是一个相对较轻的实用程序)中的内存是否使用过多 据我所知,它使用了几个类;这些类代表不同的状态。所有不同的状态对象都被实例化并存储在不同的指针变量中,直到需要状态为止,此时它被设置为curState对象 我想我可以延迟加载每个状态对象以节省一些内存和加载时间;如果我的应用程序收到内存警告,我可以释放这些对象 但我想知道的是,这种模式是否会在iPhone操作系统应用程序中使用过多的内存?iPhone开发者应该远离这种模式吗?是否有一种不同的模式更适合iPhone操

iPhone应用程序(在我的例子中是一个相对较轻的实用程序)中的内存是否使用过多

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

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


但我想知道的是,这种模式是否会在iPhone操作系统应用程序中使用过多的内存?iPhone开发者应该远离这种模式吗?是否有一种不同的模式更适合iPhone操作系统

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

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


与应用程序的“工作”部分相比,您更可能因为挂起不需要的图形或声音而遇到内存问题。

关于艺术和媒体文件-->只有在艺术和媒体文件位于状态对象内时才会出现此问题,对吗?在我的回答中增加了一些细节。谢谢你回答我的问题。