關於UIImage自動釋放問題

2021-09-30 11:45:33 字數 679 閱讀 3269

在做iphone和ipad應用中,可能很多人都會用到xib和storyboard。

在寫**時,我們在載入一張時,經常會這樣寫到[uiimage imagenamed:@"text.png"];用於的載入。而在xib和storyboard中使用uiimageview控制項時,一般會在這裡放名字。

但是注意記憶體的小夥伴就會知道,在這裡新增名字後,切換場景或者介面時,記憶體不能及時得到釋放。

這是因為使用xib和storyboard的這種方式載入其實就是我們**的imagenamed方法。這個方法在將新增到記憶體快取中是不能及時釋放掉的,加之現在蘋果的arc,所以如果需要經常切換場景或者乙個介面中元素過多時,採用這種方式顯然不是明智的選擇。

在蘋果uiimage這個類中還有乙個方法,+ (uiimage *)imagewithcontentsoffile:(nsstring *)path;這種方法載入的方法載入的是不會快取的。得到的物件時autorelease的,當autoreleasepool釋放時才釋放。

我自己寫了乙個方法把它的路徑稍微封裝了一下。可能不是很完善,在這裡和大家分享一下,希望有用得到的人。

+(uiimage *)imagenamewithstring:(nsstring *)name

else

}return

[uiimageimagewithcontentsoffile:path];

iOS 關於UIImage的壓縮問題

uiimage img uiimage imagenamed example.png 兩種轉化方式,nsdata data uiimagejpegrepresentation img,0.0001 nsdata data1 uiimagepngrepresentation img nslog dat...

關於鎖的自動釋放

這種方案一直在用,但是一直沒能領會到它的意圖,也是在乙個面試過程中,被問到乙個此類問題,從而才想到的。問題 當在乙個函式中使用鎖時,如果加鎖後由於某種原因 疏忽,異常等 沒有釋放鎖就直接退出了,那麼將導致鎖的狀態錯誤,怎樣解決這個問題?1 沒有正常釋放鎖 就像下面的程式一樣 這裡僅作為示例,選用mu...

UWSGI關於記憶體釋放問題

bin bash ps ef grep p project pid awk xargs kill 9 ulimit n 20000 usr local env project bin uwsgi s 127.0.0.1 7001 m r 200 p 4 evil reload on as 100 e...