一.資源打包
圖片是被放在image.xcassets里面
部署版本在>=iOS8.0時,打包的資源包圖片被放在Assets.car中 ,圖片被壓縮
部署版本在
圖片如果是被直接拖到項目當中,無論部署版本是多少,都會被放到MainBundle中,圖片沒有被壓縮
二.內存分配
使用imageNamed:加載圖片
加載到內存中后,會一直停留在內存中,不會隨著對象銷毀而銷毀
加載進圖片后,占用的內存歸系統管理,我們無法管理
相同的圖片,圖片不會重新加載
加載到內存中后,占據內存空間較大
使用?imageWithContentOfFile:加載圖片
加載到內存中后,占據內存空間比較小
相同的圖片會被重復加載到內存中
對象銷毀的時候,加載到內存中得圖片會被一起銷毀
結論:
如果圖片較小,并且頻繁使用的圖片,使用imageName:來加載圖片(按鈕圖片/主頁圖片/占位圖)
如果圖片較大,并且使用次數較少,使用imageWithContentOfFile:來加載(相冊/版本新特性)