UIImage
是否曾經從緩存中刪除圖像?我可以保留一個指向我從imageNamed:
獲得的圖像,只要我喜歡就使用它,或者我必須始終致電imageNamed:
?UIImage的緩存行爲
0
A
回答
2
從imageNamed:
返回的UIImage
對象與內存管理所用的所有其他對象一樣被對待。如果要在方法調用之間保留對象的引用,那麼在完成引用計數遞減後,應該使用retain
it和release
。
UIImage * cachedImage;
-(void) getTheImage {
UIImage * cachedImage = [[UImage imageNamed:@"MyImage.png"] retain];
//Do something with the image...
}
//In some other method or dealloc
[cachedImage release];
此外,請注意,UIImage class reference說:
在低存儲器的情況下,圖像數據 可以從UIImage對象進行沖洗以在系統上 釋放內存。 This 清除行爲僅影響 UIImage對象內部存儲的 圖像數據,而不影響對象 本身。當您嘗試繪製其數據已被清除的 圖像時, 圖像對象會自動從其原始文件中重新加載 數據。然而,這個額外加載步驟可能會導致性能降低。
0
UIImage緩存數據本身。你不能拿着一個指針,只是通過它。這可能是不安全的,因爲當有內存警告並且沒有強引用時,UIImage將清除緩存的數據。每次調用[UIImage imageNamed:]。它速度很快,並將ref從內存返回給圖像。如果圖像不再在內存中,它將重新加載並通過該參考文獻
相關問題
- 1. 是否UIImage緩存圖像?
- 2. UIImage緩存清除問題
- 3. UIImage initWithContentsOfFile:和高速緩存
- 4. UIImage的緩存導致內存高
- 5. UIImage內存問題由於緩存
- 6. 會話之間的iOS緩存UIImage
- 7. 使用URL中的uitableview緩存UIImage
- 8. 緩存行爲:: vector的
- 9. AVURLAsset的緩存行爲
- 10. 如何在uiimage緩存中使用sdimage?
- 11. 單個vs多個UIImage緩存
- 12. UIImage在緩存時沒有出現
- 13. 緩存UIImage作爲NSData並讓它回來
- 14. 緩存行爲使用FileStream
- 15. Angularjs - IE9緩存行爲
- 16. Oracle結果緩存行爲
- 17. 將UIImage保存爲Blob SQLite
- 18. 將UIscrollView保存爲Uiimage
- 19. 將UIImage保存爲NSUserDefaults
- 20. 缺少緩存標頭的IE 8默認緩存行爲
- 21. 點燃緩存存儲行爲
- 22. 奇怪的休眠緩存行爲
- 23. 奇怪NSURLConnection的緩存行爲
- 24. 知道C程序的緩存行爲
- 25. CPU緩存的多線程行爲
- 26. 強制IE8緩存行爲的腳本
- 27. iOS 5之前的庫/緩存行爲
- 28. Emacs的25和列表緩存行爲
- 29. 意外的火花緩存行爲
- 30. 保存的UIImage爲PNG在iPhone上