UIImage初始化的区别两种方法介绍(面试常见)
2016-05-04 11:03
609 查看
UIImage可以通过以下两种方式进行初始化:
//第一种初始化方式:【注意使用这种初始化的时候如果是png格式的可以不给后缀名,根据屏幕的的分辨率去匹配图片】 UIImage *image = [UIImage imageNamed:@"v_red_heart_selected"]; //第二种初始化方式:【必须拼接图片的全名称,否则image的路径为空】 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"v_red_heart_selected@x.png" ofType:nil]; UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath];
两种方式的区别:
第一种初始化方式:
使用imageNamed:第一次读取的时候,先把这个图片放到缓存里,下次再使用到这个同名图片的时候直接从缓存中读取;优点:方便快捷,只有第一次使用的时候稍慢,接下来再使用就会稍微快点;缺点:如果在当前工程中只使用一次会浪费内存。【这个内存在程序关闭的时候才释放】
第二种初始化方式:
使用initWithContentsOfFile初始化图片的时候,每次都会根据路径去读取,不会占用内存,如果图片在当前工程中只使用一次,应该选择这个方法
您可能感兴趣的文章:
相关文章推荐
- 部分喷墨机初始化方法
- C#中数组初始化与数组元素复制的方法
- C#中结构(struct)的部分初始化和完全初始化实例分析
- c#对象初始化顺序实例分析
- 在windows下手动初始化PostgreSQL数据库教程
- js判断变量初始化的三种形式及推荐用的形式
- 详解C#中使用对象或集合的初始值设定项初始化的操作
- javascript 定义初始化数组函数
- js二维数组定义和初始化的三种方法总结
- C++类的静态成员初始化详细讲解
- 浅析C++中结构体的定义、初始化和引用
- C语言的数组学习入门之对数组初始化的操作
- 函数外初始化与函数内初始化详细解析
- PHP cURL初始化和执行方法入门级代码
- Java中List与Map初始化的一些写法分享
- java类中元素初始化顺序详解
- Java类初始化和实例化中的2个“雷区”
- python类继承与子类实例初始化用法分析
- C++直接初始化与复制初始化的区别深入解析
- Swift编程中的初始化与反初始化完全讲解