一、内存管理概述

  • 垃圾回收机制(GC):由系统管理内存,程序员不需要管理。
  • OC中的垃圾回收:在OC2.0版加入垃圾回收。
  • OC与iOS:OC有垃圾回收机制,但是iOS屏蔽了这个功能。原因:iOS运行在移动设备上,硬件资源有限(内存、电量,发热控制等方面),而垃圾回收机制有一定弊端(以java的垃圾回收机制为例,它的垃圾回收并不是当程序结束之后,立刻回收内存,而是当程序需要内存,而剩余内存不够当前申请内存的程序使用时,才进行内存的回收)。即OC有垃圾回收机制,iOS平台屏蔽了OC垃圾回收的功能,而Mac os x是有GC的。
  • 因此,在iOS平台进行软件开发,需要程序员进行内存的管理。

二、iOS的内存管理  

  内存管理的范围:内存管理管理的是 堆区 的内存

  iOS通过引用计数管理内存。在iOS5.0之后,Xcode又加入了ARC(自动引用计数),简化了内存管理。

  iOS上的内存管理方式分为MRC和ARC。两者的区别在于MRC是由程序员使用引用计数,管理内存;而ARC是由系统自动管理引用计数。

  内存管理的原则:

  1. 自己创建的对象,自己持有

  2. 非自己创建的对象,自己也能持有

  3. 不再需要自己持有对象时,释放对象

  4. 非自己持有的对象无法释放

最新文章

  1. 利用Nginx实现域名转发 不修改主机头
  2. JVM1.6 GC详解
  3. JavaScript中 window.parent 、window.top、window.self代表的含义
  4. SiteFactory简单配制
  5. 通过sqlplus导出数据到csv
  6. NPOI 添加行
  7. iOS 清理缓存功能实现第一种方法
  8. Weblogic环境下hibernate、antlr类加载冲突问题分析及解决方案
  9. As of ADT 14, resource fields cannot be used as switch cases
  10. iOS打开手机QQ与指定用户聊天界面
  11. Linux查看物理CPU个数、核数、逻辑CPU个数 (转)
  12. poj3694(动态询问割桥的数目)
  13. PHPCMS 概念初学
  14. ubuntu常用命令及操作,包括安装CUDA
  15. Largest Rectangle in a Histogram POJ - 2559 (单调栈)
  16. accept与epoll惊群 转载
  17. SQL Server 优化总结
  18. CentOS6.4 下安装 jdk1.7.0_67
  19. C# 创建、部署、调用WebService
  20. php html 转义

热门文章

  1. opencv的学习笔记1
  2. 在linux中访问virtualbox的共享文件夹
  3. 操作SSIS之前的准备工作
  4. RecycleView可以策划的Item
  5. window route 命令
  6. CSS之盒子模型及常见布局
  7. background-clip 制作文字火焰效果
  8. 【前端】String.prototype.match() 用法详解
  9. ArcgisAdd-In开发入门实例
  10. sql视图实例