2009-06-15 37 views
0

iPhone應用程序中的state pattern - 在我的情況下,一個相對輕量級的實用程序應用程序 - 使用的內存太多?根據我的理解,使用了幾個類;這些類表示不同的狀態。所有不同的狀態對象都被實例化並存儲在不同的指針變量中,直到需要該狀態爲止,此時它被設置爲一個curState對象。iPhone應用程序中的狀態模式(內存使用)

我想我可以懶加載每個狀態對象來保存一些內存和加載時間;如果我的應用程序收到內存警告,我可以釋放這些對象。

但我想知道的是,這種模式是否在iPhone OS應用程序中爲一般用法使用了太多內存? iPhone開發者應該遠離這種模式嗎?是否有更適合iPhone OS的不同模式?

回答

1

不值得擔心。除非你的狀態非常複雜,或者你擁有成千上萬的數字,否則你的應用程序中的任何藝術或媒體文件都會使它們大小不一。

我的意思是一般 - 不要爲模型對象的內存使用量出汗。就內存使用而言,Objective-C對象非常輕量級。如果你有一個相當典型的模型類,比如有6個字段,每個字段都是一個指向其他對象的指針,那麼這個類的每個實例的總內存使用量大約是32個字節左右。如果將1000個數組放入數組或其他數據結構中,則會使用與128x128位圖相同的內存。

由於掛在圖形或聲音上,您不需要的內存問題比從應用程序的「工作」部分出現的問題要多得多。

+0

關於藝術和媒體文件 - >這隻會是如果藝術和媒體文件在狀態對象內,是正確的? – 2009-06-15 01:07:55