美文网首页
iOS 加载图片选择imageNamed 方法还是 image

iOS 加载图片选择imageNamed 方法还是 image

作者: 凯旋之歌 | 来源:发表于2017-04-06 11:46 被阅读0次

    Apple官方的文档为生成一个UIImage对象提供了两种方法:

    1. imageNamed,其参数为图片的名字;

    [UIImage imageNamed:ImageName];

    2. imageWithContentsOfFile,其参数也是图片文件的路径。

    NSString *thumbnailFile = [[NSBundle mainBundle].resourcePath stringByAppendingPathComponent:fileName];

    UIImage *thumbnail = [UIImage imageWithContentsOfFile:thumbnailFile];

    3.用initWithContentsFile方法

    UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath]

    第一种方法为常见方法,这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象,如果它存在的话。如果缓存中没有找到相应的图片,这个方法从指定的文档中加载然后缓存并返回这个对象。利用它可以方便加载资源图片。用imageNamed的方式加载时,会把图像数据根据它的名字缓存在系统内存中,以提高imageNamed方法获得相同图片的image对象的性能。即使生成的对象被 autoReleasePool释放了,这份缓存也不释放。而且没有明确的释放方法。如果图像比较大,或者图像比较多,用这种方式会消耗很大的内存。

    imageWithContentsOfFile:仅加载图片,图像数据不会缓存。因此对于较大的图片以及使用情况较少时,那就可以用该方法,降低内存消耗。得到的对象是autoRelease的,当autoReleasePool释放时才释放。

    第三种方法要手动release掉。不系统缓存。release后立即释放,一般用在封面等图比较大的地方。

    相关文章

      网友评论

          本文标题: iOS 加载图片选择imageNamed 方法还是 image

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