iOS中imageNamed 和 imageWithContentOfFile的區別

一.資源打包

圖片是被放在image.xcassets里面

部署版本在>=iOS8.0時,打包的資源包圖片被放在Assets.car中 ,圖片被壓縮

部署版本在

圖片如果是被直接拖到項目當中,無論部署版本是多少,都會被放到MainBundle中,圖片沒有被壓縮

二.內存分配

使用imageNamed:加載圖片

加載到內存中后,會一直停留在內存中,不會隨著對象銷毀而銷毀

加載進圖片后,占用的內存歸系統管理,我們無法管理

相同的圖片,圖片不會重新加載

加載到內存中后,占據內存空間較大

使用?imageWithContentOfFile:加載圖片

加載到內存中后,占據內存空間比較小

相同的圖片會被重復加載到內存中

對象銷毀的時候,加載到內存中得圖片會被一起銷毀

結論:

如果圖片較小,并且頻繁使用的圖片,使用imageName:來加載圖片(按鈕圖片/主頁圖片/占位圖)

如果圖片較大,并且使用次數較少,使用imageWithContentOfFile:來加載(相冊/版本新特性)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容