我正試圖找到方法來減少我的應用程序的內存使用情況,並且我對UIImage有一個想法。我對UIImage進行了相當廣泛的使用,其中一些對於多個視圖很常見。實例化單個UIImage,然後在整個應用程序中使用指向同一圖像的指針,而不是爲每個視圖中的同一圖像分配新的UIImage有更高的內存效率嗎?或者,操作系統是否足夠智能地自動緩存UIImage,以便它只存儲在內存中一次? (懷疑是這樣,但我不得不問)切斷UIImage內存使用情況
謝謝。
我正試圖找到方法來減少我的應用程序的內存使用情況,並且我對UIImage有一個想法。我對UIImage進行了相當廣泛的使用,其中一些對於多個視圖很常見。實例化單個UIImage,然後在整個應用程序中使用指向同一圖像的指針,而不是爲每個視圖中的同一圖像分配新的UIImage有更高的內存效率嗎?或者,操作系統是否足夠智能地自動緩存UIImage,以便它只存儲在內存中一次? (懷疑是這樣,但我不得不問)切斷UIImage內存使用情況
謝謝。
直爲imageNamed:
這種方法看起來在系統中的高速緩存,用於與 指定的名稱和該對象,如果它存在,則返回的圖像對象。如果匹配的 圖像對象尚未存在於緩存中,則此方法從指定文件加載圖像 數據,將其緩存,然後返回結果對象 。
您使用了很多圖片,所以請記住[UIImage imageNamed:@""];
緩存圖片,所以如果您的內存不足,請使用[UIImage imageWithContentsOfFile:@""];
而不緩存它。也許這可以幫助你減少內存使用量。
這不會降低他的記憶問題。事實上,它會增加它,因爲他反覆使用相同的圖像。每次重複使用時不斷向記憶中添加新圖像將是他想避免的確切事情。 – ColdLogic
當視圖卸載時,在viewDidUnload
方法UIViewController
的子類中將GUI屬性設置爲零。從UIImage apple reference docs
總是一個好主意,首先檢查文檔,但謝謝你的迴應,這肯定回答我的問題。 –