文档章节

autorelease和autoreleasepool应该知道的那些事

super_co
 super_co
发布于 2015/06/12 16:28
字数 294
阅读 2
收藏 0
点赞 0
评论 0

一个Cocoa对象生命周期,有明确的轨迹

一 ,autorelease:

1.对象执行autorelease方法时会将对象添加到自动释放池中 

2.当自动释放池销毁时自动释放池中所有对象作release操作 

3.对象执行autorelease方法后自身引用计数器不会改变,而且会返回对象本身

4.autorelease实际上只是把对象release的调用延迟了,对于对象的autorelease系统只是把当前对象放入了当前对应的autorelease pool中,当该pool被释放时([pool drain]),该pool中的所有对象会被调用Release,从而释放使用的内存。这个可以说是autorelease的优点,因为无需我们再关注他的引用计数,直接交给系统来做!

5.对于操作占用内存比较大的对象的时候不要随便使用,担心对象释放的时间太迟,造成内存高峰, 但是操作占用内存比较小的对象可以使用

二,atureleasepool

1.自动释放池存储于内存中的栈中遵循"先进后出"原则


© 著作权归作者所有

共有 人打赏支持
super_co
粉丝 1
博文 10
码字总数 7205
作品 1
东城
高级程序员
NSAutoReleasePool 讲解

Cocoa的内存管理主要依赖于Reference Counting, 而NSAutoReleasePool就是用来支持它的. autorelease pool中存放的对象会在其自身干枯(drain)时被release. 我们都知道当一个object的release方...

小怪兽551
2012/05/31
0
0
NSAutoReleasePool 讲解

好记性不如烂博客. 今天需要记录的是关于NSAutoReleasePool的理解.(大部分内容来自于iOS4.3 Library) Cocoa的内存管理主要依赖于Reference Counting, 而NSAutoReleasePool就是用来支持它的....

孙启超
2012/05/28
0
1
objective-C 中的内存管理

手动管理。下面这篇博文绝对能让你清晰很多。http://www.cocoachina.com/bbs/read.php?tid=15963 不过这里需要指出两点: 1.1 文中说你autorelease的对象会被放到一个nsmutablearray中,这个...

Megan_zhou
2013/07/29
0
0
ios内存管理(四):Autorelease技术

  前面章节提到内存释放时,经常会说到当超出变量作用域时,变量会被“自动”释放,其实这只是为了更加简单的说明这个过程。实际上,在ARC模式下是系统帮你自动插入了相应的release逻辑。这...

智小融
2017/12/24
0
0
OC中内存管理(MRC)--@autoreleasepool

第一:如何使用,在5.0之前有一种使用,不过现在怕是见不到了(只要知道);第二种:@autoreleasepool{} 第二:注意点:不管你怎么写,一定要在{[ 你所创建的对象 autorelease ]}添加到释放...

AppleDream
2016/03/31
37
0
那些被遗漏的Objective-C保留字

Steffen Itterheim是《Learn Iphone and Ipad Cocos2d Game Development》作者。cocos2d和cocos2d-x现在已成为著名的游戏开发引擎。在AppStore上有超过100个游戏是基于Cocos2D。 Steffen It...

Jeans
2014/04/13
0
0
各个线程 Autorelease 对象的内存管理

最近和 bestswifter 、kuailejim 搞了一套模拟面试,然后不管是应届生还是工作两三年的高级工程师都对下面这几个问题比较懵逼,可能是开发中用到的不多,在这里浅浅的讨论下 Autoreleasepoo...

Joy_xx
2017/11/15
0
0
objective - c 内存管理机制

版权声明 此文版权归作者VinceYuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必须包含此版权声明的完整内容。 版本1.1 发表...

雾灵峰
2012/11/12
0
0
OC内存管理常见的面试题

#####面试:说一说对内存管理的理解?(原理) - 手动内存管理(MRC):1.在创建一个对象的时候系统会自动创建这个对象的引用计数并赋值为1;2.当引用计数为0的时候,对象会去调用dealloc方法来...

鹿微微鹿
2016/03/25
275
0
iOS面试题总结(三)

iOS面试(三) 1.MVC具有什么样的优势,各个模块之间怎么通信,比如Button后怎么通知Model MVC是一种设计思想,是一种架构模式,是一种把应用所有类组织起来的策略。他们把程序分成3块。 M: 存储...

沧州宁少
2017/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python3学习日志二 Python中的集合set和字典dict

1.集合set 定义一个集合set 我们可以看到定义集合set有两种不同的形式,如果要定义一个空的集合set不能用{}而是要用set();另外,集合是无序的,而且set中的元素是不可重复的,如果你定义了一...

Mr_bullshit
5分钟前
0
0
adb 操作指令详解

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。 注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。...

孟飞阳
12分钟前
0
0
nodejs安装以及环境配置(很好的node安装和配置文章,少走很多弯路)

一、安装环境 1、本机系统:Windows 10 Pro(64位) 2、Node.js:v6.9.2LTS(64位) 二、安装Node.js步骤 1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/ 2、选安装目录进...

sprouting
29分钟前
0
0
Redisson

了解了Redisson,发现使用挺简单的,接下来准备深入学习一下。 Redisson介绍 Redisson是架设于Redis基础之上的一个Java驻内存数据网格(In-Memory Data Grid) Redisson在基于NIO的Netty框架上...

to_ln
29分钟前
0
0
python有哪些好玩的应用实现,用python爬虫做一个二维码生成器

python爬虫不止可以批量下载数据,还可以有很多有趣的应用,之前也发过很多,比如天气预报实时查询、cmd版的实时翻译、快速浏览论坛热门帖等等,这些都可以算是爬虫的另一个应用方向! 今天给...

python玩家
30分钟前
0
0
jq 判断复选框是否被选中,复选框后台接收

1. 效果 2. 代码 html部分: JS部分: var rememberLogin = $("#rememberLoginId").is(':checked')//获取复选框是否被选中 var rememberLoginval = $("#rememberLoginId").attr('value')//拿......

Lucky_Me
37分钟前
0
0
python爬虫日志(3)-爬去异步加载网页

在浏览器检查元素页面中,选取Network中的XHR选项即可观察每次加载页面,网页发出的请求,观察url的规律即可利用封装的函数对每一页进行爬取。

茫羽行
37分钟前
0
0
《趣谈网络协议》之为什么要学习网络协议?

一、协议 1.协议的定义 简单说协议就是一个规则,保证沟通交流双方可以互相听懂、理解或者可以双方合作可以顺利进行的一个约定和规则。 2.生活中例子 (1)有一种叫“程序猿”的物种,敲着一种...

aibinxiao
39分钟前
1
0
Python数据分析numpy基础-维度的认识

什么是多维数组? 核心对象是同型的多维数组(简单理解就是一个表格,通常内容都是些数字),具有相同的数据类型。 概念: 1. axes(轴):数组的维度统称为轴。 2. rank:轴的数量称为rank。...

十年磨一剑3344
43分钟前
0
0
Java 正则表达式相关资料

1.java正则表达式过滤html标签

IT追寻者
46分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部