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