zoukankan      html  css  js  c++  java
  • 关于UIImage类的对象两种初始化方法的区别

    1、imageNamed:

    1 UIImage *image = [UIImage imageNamed:@"1"];

      UIImage的类方法

      第一次读取图片的时候,先把这个图片放到缓存中,下次再使用这个名字的图片时,直接从缓存中读取;如果缓存中不存在这个名字的图像,则先把该图片加载到缓存中,再返回该对象。如果我们需要短时间内频繁的加载一些一次性的图像,最好不要使用这种方法。在实际开发中,当需要使用多次同一张图片时使用。

      优点:方便快捷,只有第一次使用的时候稍慢,接下来再使用就会稍微快点;

      缺点:如果在当前工程中只使用一次,就会浪费内存。一旦资源被占用,整个应用程序运行过程中,资源不会被释放。

    2、imageWithContentsOfFile:和initWithContentsOfFile:

    1 // 获取程序包中一个图片资源的路径
    2     NSString *oldImagePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"];
    3     // 根据路径获取图片
    4     UIImage *image1 = [UIImage imageWithContentsOfFile:oldImagePath];  // 类方法
    5     UIImage *image2 = [[UIImage alloc] initWithContentsOfFile:oldImagePath];  // 对象方法

        imageWithContentsOfFile:  -- UIImage的类方法

      intiWithContentsOfFile:  -- UIImage的对象方法

      每次都根据路径去读取图片,不经过系统缓存,直接从文件系统中加载并返回。不会耗内存,如果加载的图片在工程中只使用一次,应该选择这个方法。当收到内存警告的时候,系统可能会将UIImage内部的存储图像的内存释放,下一次需要的时候重新加载。遵循引用计数机制。

  • 相关阅读:
    简单实现java线程池 阿里
    下载安装mysql的一些坑 阿里
    [ZZ]]文艺表年装B指南
    台湾前十大科技公司拼不过三星(往后一点三星都不要买啦!)
    [不是面经,胜似面经]条条大路通Google
    ubuntu 下PDA同步解决(SynCE, OpenSync)
    android整体印象
    关系图:Linux演化图,Ubuntu应用图
    linux 版本中 i386/i686/x8664/pcc 等... 的区别
    一个计算机高手的成长历程【转】
  • 原文地址:https://www.cnblogs.com/fearlessyyp/p/5460144.html
Copyright © 2011-2022 走看看