一. 直接使用imageNamed进行创建

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

简单说一下这种方式的优缺点:

优点:代码量少,一行代码就可以搞定。当程序中多次加载这张图片时,系统会指向同一块内存,这样可以提升效率。

缺点:系统每次会将图片缓存到计算机的内存中去,如果图片非常大,非常多,会消耗很大的计算机内存,会出现卡顿的现象。

二.将本地图片转换成NSData类型存储

1     NSString *filePath = [[NSBundle mainBundle]pathForResource:@"1" ofType:@"jpg"];
2     NSData *imageData = [NSData dataWithContentsOfFile:filePath];
3     UIImage *image1 = [UIImage imageWithData:imageData];

优点:图片会被系统以数据的方式加载到程序中,当你不需要重复使用一个图片或者你需要加载大量的图片,不会大量消耗计算机内存,使用这种方式。

缺点:代码量较多,没有第一种简单。

三.通过NSURL获取网络图片

1     NSURL *url = [NSURL URLWithString:PATH];
2     NSData *imageData = [NSData dataWithContentsOfURL:url];
3     UIImage *image = [UIImage imageWithData:imageData];

上面的PATH是网络图片的地址。

这种方式的优缺点跟第二种应该是一样的,区别就在于获取图片的方式不一样。

转载于:https://www.cnblogs.com/code4better/p/5537125.html

简单阐述下OC中UIImage三种创建方式~~~相关推荐

  1. 总结windows下堆溢出的三种利用方式

    创建时间:2004-04-08 文章属性:转载 文章提交:watercloud (watercloud_at_xfocus.org) 原文由Leven发在网络编程版: https://www.xfoc ...

  2. python请输入_python中的三种输入方式

    python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...

  3. Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)

    阅读目录 一.MVC与MTV 二.多对多表的创建 三.ajax,前后端传输编码格式contentType 四.批量插入数据与自定义分页器 摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端 ...

  4. 五分钟教你使用vue-cli3创建项目(三种创建方式,小白入门必看)

    五分钟教你使用vue-cli3创建项目(三种创建方式,小白入门必看) 一.搭建vue环境 安装Nodejs 官网下载Nodejs,如果希望稳定的开发环境则下LTS(Long Time Support) ...

  5. java线程的任务的三种创建方式,严格地说,就一种,就是如何重写Runnable接口的run()方法

    仅简单演示Java中线程任务的三种创建方式 第一种:使用了适配器模式,有返回值,能抛出异常,任务代码写在Callable.call()方法中,Runnable的run方法会通过适配器调用到Callab ...

  6. Django 数据库查询优化,choices参数(数据库字段设计常见),MVC和MTV模型,多对多三种创建方式...

    数据库查询优化 orm语句的特点:惰性查询 如果仅仅只是书写了orm语句,在后面没有用到该语句所查询出来的参数,那么orm会自动识别,并不执行 举例: res = models.Book.object ...

  7. 线程的三种创建方式和他们的优缺点

    文章目录 一.线程的三种创建方式 1.继承Thread 2.实现Runable接口 3.实现Callable接口 二.三种创建方式的优缺点 1.使用Runnable接口比使用继承Thread的优势 2 ...

  8. 线程的三种创建方式以及代码实现

    线程和进程的概念 一个进程可以有多个线程 程序:是指令和数据的有序集合(静态的) 进程:是执行程序的一次执行过程(动态的),是系统资源分配的单位.在操作系统中运行的程序就是进程. 通常在一个进程中可以 ...

  9. Servlet 的三种创建方式

    Servlet 创建有三种方式. 1.实现 Servlet 接口 因为是实现 Servlet 接口,所以我们需要实现接口里的方法. 下面我们也说明了 Servlet 的执行过程,也就是 Servlet ...

最新文章

  1. js-带操作的赋值表达式
  2. httpclient 登录人人,并且发表说说。
  3. 阿里云华北3超大规模数据中心开服 ECS全系列降价20%
  4. HDU ACM 4031 Attack (树状数组--单点查询+区间更新)
  5. java时钟面板clock
  6. Kafka如何实现每秒上百万的超高并发写入?
  7. tomcat(2)一个简单的servlet容器
  8. JS实现滚动监听以及滑动到顶部
  9. 多任务学习模型之ESMM介绍与实现
  10. 计算机硬盘中病毒以后怎么办,计算机中病毒,格式化整个硬盘后还有?怎么办?...
  11. Spring学习总结(20)——Spring加载多个项目properties配置文件问题解决
  12. 后台审批功能 销售发货单 生成 销售出库单 java NC633 接口开发
  13. Azure云平台 GPS大数据解决方案 EventHub+Azure Databricks+Azure Cosmos DB Cassandra
  14. android关机重启流程代码
  15. vb.net中关于byval和byref的使用
  16. 神经网络实现手写数字识别
  17. ASP.NET CORE 内置的IOC解读及使用
  18. g4560和二代i5_奔腾g4560和i5 2500K哪个好
  19. 如何用 Minio SDK 访问滴滴云对象存储
  20. 添加wellcap和endcap作用

热门文章

  1. thinkphp3.2自定义success及error跳转页面
  2. 你在乎的--世界在乎的
  3. android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )屏幕适配
  4. jQuery 利用 $.getJson() 实现跨域
  5. 客服顾问的工具箱--走出软件作坊:三五个人十来条枪 如何成为开发正规军(六)[转]...
  6. 解释型语言和编译型语言的区别
  7. python函数变量的作用域_学不会的Python函数——变量作用域
  8. matlab按某一列排序
  9. 查询分析器在哪里_你应该知道的3种Node.js分析器类型
  10. 2011年计算机二级试题,2011年3月全国计算机二级C++考试真题