@0简介

内存管理,即内存里各个对象的管理,即内存里各个对象的生命周期的管理,(从面向对象的角度看)

@1引用计数器

默认为1,即有一滴的生命血液,若为0就会死去

@2单个对象的管理

自己管理自己,自己在方法最后,要给自己release一下,不然自己死不了

@3多个对象的管理

1重写遗书方法:在里面把属性对象释放,

2重写set方法,里面若前后值不同,就释放旧值,增加新值 (不然旧值死不了)

@4自动释放池的,简化release

简介好处:只要创建时丢进池子里,就不用再写release了

@5property策略,简化set方法

1retain指令封装了,其对set方法,的release旧值,retain新值两个操作

2assign : 直接赋值,不做任何内存管理

3

Øcopy   : release旧值,copy新值(一般用于NSString *)

附录

1

n僵尸对象
Ø已经被销毁的对象(不能再使用的对象)
n
n野指针//也可理解为僵尸指针
Ø指向僵尸对象(不可用内存)的指针
Ø给野指针发消息会报EXC_BAD_ACCESS错误
n
n空指针
Ø没有指向存储空间的指针(里面存的是nil, 也就是0)
Ø给空指针发消息是没有任何反应的
Ø
n为了避免野指针错误的常见办法
Ø在对象被销毁之后, 将指向对象的指针变为空指针

7内存管理-MRC的更多相关文章

  1. Objective-c的内存管理MRC与ARC

    Objective-c的内存管理MRC与ARC   Objective-c中提供了两种内存管理机制MRC(MannulReference Counting)和ARC(Automatic Referen ...

  2. OC内存管理(MRC)

    首先说明一下几块存储区域: 栈区(局部变量.函数参数值) 堆区(对象.手动申请/释放内存) BSS区(未初始化的全局变量.未初始化的静态数据) 常量区(字符串常量以及初始化后的全局变量.初始化后的静态 ...

  3. iOS-旧项目中手动内存管理(MRC)转ARC

    在ARC之前,iOS内存管理无论对资深级还是菜鸟级开发者来说都是一件很头疼的事.我参 加过几个使用手动内存管理的项目,印象最深刻的是一个地图类应用,由于应用本身就非常耗内存,当时为了解决内存泄露问题, ...

  4. 内存管理-MRC与ARC详解

    Objective-C提供了两种内存管理机制MRC(Mannul Reference Counting)和ARC(Automatic Reference Counting),为Objective-C提 ...

  5. OC 内存管理之手动内存管理MRC

    一.基本原理 1.什么是内存管理 内存管理的重要性: 移动设备的内存极其有限,每个app所能占用的内存是有限制的 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间. ...

  6. 内存管理-MRC

    MRC内存管理 环境:先关闭arc模式,选中项目->build Settings

  7. object-C 手动内存管理(MRC)

    object-C的内存管理和javascript的垃圾回收不一样,今天总结下手动内存管理,ARC的后边补上. 1:基本铺垫 oc采用引用计数来表示对象的状态,比如通过init创建出来的一个对象引用计数 ...

  8. 【Bugly干货分享】iOS内存管理:从MRC到ARC实践

    Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 对于iOS程序员来说,内存管理是入门的 ...

  9. iOS阶段学习第20天笔记(MRC内存管理)

    iOS学习(OC语言)知识点整理 一.OC中的内存管理 1)概念:内存管理的对象为所有继承了NSObject的对象,对基本数据(如:int .float.double...)无效      OC中采用 ...

随机推荐

  1. 上传代码到github的步骤

    在你的电脑上装好git 大致流程是: 1.在github上创建项目 2.使用git clone https://github.com/xxxxxxx/xxxxx.git克隆到本地 3.编辑项目 4.g ...

  2. EMMC 介绍【转】

    本文转载自:https://blog.csdn.net/u014645605/article/details/52061034 定义: eMMC (Embedded Multi Media Card) ...

  3. sudo中的 各类授权 名称包含的操作 权限命令?

    sudo是 do something as super user: 或者说: as Super User Do something: 就是 为 "非根用户赋予根用户的权限" 使用 ...

  4. 初识Java框架

    Spring boot>spring>spring mvc SSH:struts2+spring+hibernate SSM(SSH的改进): (过去)spring+struts2+MyB ...

  5. How to Install Apache Tomcat 8.5 on CentOS 7.3

    How to Install Apache Tomcat 8.5 on CentOS 7.3 From: https://www.howtoforge.com/tutorial/how-to-inst ...

  6. P4980 【模板】Polya定理

    思路 polya定理的模板题,但是还要加一些优化 题目的答案就是 \[ \frac{\sum_{i=1}^n n^{gcd(i,n)}}{n} \] 考虑上方的式子怎么求 因为\(gcd(i,n)\) ...

  7. 论文笔记之:Deep Attributes Driven Multi-Camera Person Re-identification

    Deep Attributes Driven Multi-Camera Person Re-identification 2017-06-28  21:38:55    [Motivation] 本文 ...

  8. github 首页不显示提交记录

    原因,一般是因为提交登录里配置的邮箱不是 github 上记录的邮箱. 如何查询提交记录里的邮箱? 如果是本地仓库, 使用小乌龟什么的定位到要查看的提交就可以了.如果是远程仓库, 进入提交记录详情,在 ...

  9. windows下的安装及使用 python

    出处 https://www.cnblogs.com/daysme/ - 2017-12-30 本文只讲在 vscode 中如何运行起 python - 2017-12-30 ## windows下的 ...

  10. Centos6.5 搭建LAMP环境

    1.Centos6.5 处于对安全的考虑,严格控制网络的进去.所以安装  Apache 或 MySQL 的时候,需要开放 80 或 3306 端口 首先,执行如下命令查看当前防火墙开放了哪些端口: [ ...