美文网首页iOS面试知识UIKit
iOS之imageName:和imageWithContentO

iOS之imageName:和imageWithContentO

作者: Idoahc | 来源:发表于2017-10-18 16:57 被阅读21次

    一.资源打包

    图片是被放在image.xcassets里面
    部署版本在>=iOS8.0时,打包的资源包图片被放在Assets.car中 ,图片被压缩
    部署版本在<iOS8.0时,打包的资源包图片被放在MainBudnle中,图片没有被压缩
    图片如果是被直接拖到项目当中,无论部署版本是多少,都会被放到MainBundle中,图片没有被压缩

    二.内存分配

    使用imageNamed:加载图片:

    加载到内存中后,会一直停留在内存中,不会随着对象销毁而销毁
    加载进图片后,占用的内存归系统管理,我们无法管理
    相同的图片,图片不会重新加载
    加载到内存中后,占据内存空间较大

    使用 imageWithContentOfFile:加载图片:

    加载到内存中后,占据内存空间比较小
    相同的图片会被重复加载到内存中
    对象销毁的时候,加载到内存中得图片会被一起销毁

    结论:

    如果图片较小,并且频繁使用的图片,使用imageName:来加载图片(按钮图片/主页图片/占位图)
    如果图片较大,并且使用次数较少,使用 imageWithContentOfFile:来加载(相册/版本新特性)

    相关文章

      网友评论

        本文标题:iOS之imageName:和imageWithContentO

        本文链接:https://www.haomeiwen.com/subject/hiseuxtx.html