登录
|
注册
|
QQ账号登录
|
常见问题
联系我们:
我要上传
首页
浏览
幼儿/小学教育
中学教育
高等教育
研究生考试
外语学习
资格/认证考试
论文
IT计算机
经济/贸易/财会
管理/人力资源
建筑/环境
汽车/机械/制造
研究报告
办公文档
生活休闲
金融/股票/期货
法律/法学
通信/电子
医学/心理学
行业资料
文学/艺术/军事/历史
我的淘豆
我要上传
帮助中心
复制
下载此文档
ObjectiveC程序设计内存管理PPT教案.pptx
文档分类:
IT计算机
|
页数:约53页
举报非法文档有奖
分享到:
1
/
53
下载此文档
搜索
下载此文档
关闭预览
下载提示
1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
2.下载该文档所得收入归上传者、原创者。
3.下载的文档,不会出现我们的网址水印。
同意并开始全文预览
(约 1-6 秒)
下载文档到电脑,查找使用更方便
下 载
还剩?页未读,
继续阅读
分享到:
1
/
53
下载此文档
文档列表
文档介绍
ObjectiveC程序设计内存管理PPT教案.pptx
1
会计学
ObjectiveC程序设计内存管理
目录
自动释放池
在处理Foundation程序时,为了使用Foundation对象,必须设置自己的池。系统使用这个池来跟踪对象,以便以后释放。在应用程序中,可以通过调用来建立这个池,如下所示:
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
自动释放池
建立了自动释放池之后,Foundation将自动为这个池添加特定的数组、字符串、宇典以及其他对象。使用完该池时,可以发送drain消息来释放它使用的内存:
[pool drain];
任何标记为自动释放并因此添加到池中的对象,将在池本身被释放的同时也自动释放,自动释放池的名称就是由此而来的。事实上,程序中可以有多个自动释放池,并且它们还可以是嵌套的。
自动释放池
如果你的程序产生了大量的临时对象,可能需要在程序中创建多重自动释放池。例如代码片段:
NSAutoreleasePool *tempPool;
...
for (i = 0; i < n; ++i) {
tempPool = [[NSAutoReleasePool alloc] init];
... // lots of work with temporary objects here
[tempPool drain];
}
说明了如何创建几个自动释放池来释放由for循环的每一次迭代而产生的临时对象。应该注意到自动释放池并不包括实际对象本身,仅仅是对释放池要释放的对象的引用。
自动释放池
通过想当前的自动释放池发送一条autorelease消息,可以将一个对象添加到其中,以便以后释放。
[myFraction autorelease];
然后,系统将myFraction添加到自动释放池中以便将来自动释放。
引用计数
Foundation框架提供了一个巧妙的解决方案,用于跟踪对象的引用次数。它涉及一个相当简单直观的技术,称为引用计数。其概念如下:创建对象时,将它的引用次数设置为1,每一次必须保持该对象时,就发送一条retain消息,使其引用次数加1,如下所示:
[myFraction retain];
Foundation框架提供的其他一些方法也可以增加对象的引用次数,例如,把对象添加到数 组中时。不再需要对象时,可以通过发送release消息,使对象的引用次数减1,如下所示:
[myFraction release];
通过向对象发送retainCount消息,可以获得该对象的引用计数,注意,它将返回一个NSUinteger类型的无符号整数。
Program
// Introduction to reference counting
#import <Foundation/>
#import <Foundation/>
#import <Foundation/>
#import <Foundation/>
#import <Foundation/>
int main (int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSNumber *myInt = [NSNumber numberWithInteger: 100];
NSNumber *myInt2;
NSMutableArray *myArr = [NSMutableArray array];
NSLog (@”myInt retain count = %lx”,
(unsigned long) [myInt retainCount]);
[myArr addObject: myInt];
NSLog (@”after adding to array = %lx”,
(unsigned long) [myInt retainCount]);
myInt2 = myInt;
NSLog (@”after asssignment to myInt2 = %lx”,
(unsigned long) [myInt retainCount]);
引用计数
[myInt retain];
NSLog (@”myInt after retain = %lx”
ObjectiveC程序设计内存管理PPT教案 来自淘豆网www.taodocs.com转载请标明出处.
猜你喜欢
2024年小学三年级读后感精选15篇
11页
2024年小学三年级作文(通用48篇)
32页
2024年小区物业活动方案(通用21篇)
58页
语文教师个人学习计划
6页
2024年对话作文600字
6页
2024年对某人失望心寒的说说15篇
66页
2024年对一个人很痴情的句子
41页
草原风光
10页
英语搞笑脑筋急转弯及答案集锦
11页
2024年宿管部副部长申请书
7页
2024年家长给老师的一封感谢信范文
6页
2024年家长教育孩子优秀心得体会
35页
2024年家长会欢迎词(精选)
42页
2024年家长会上数学老师的发言稿
40页
实验小学升旗手演讲稿学生[推荐五篇]
4页
相关文档
更多>>
非法内容举报中心
文档信息
页数
:
53
收藏数
:
0
收藏
顶次数
:
0
顶
上传人
:
wz_198613
文件大小
:
467 KB
时间
:
2021-04-29
相关标签
小程序设计方案
c语言程序设计ppt课件
室内设计ppt案例
室内设计ppt方案
小程序设计流程
杏树屯冠军小镇规划
宣汉城区东区规划
泰兴珊瑚镇最新规划
滨海八滩最新规划
从化未来发展规划
计算机原理
PHP资料
linux/Unix相关
Java
.NET
windows相关
开发文档
管理信息系统
软件工程
网络信息安全
网络与通信
图形图像
行业软件
人工智能
计算机辅助设计
多媒体
软件测试
计算机硬件与维护
网站策划/UE
网页设计/UI
网吧管理
电子支付
搜索引擎优化
服务器
电子商务
Visual Basic
数据挖掘与模式识别
数据库
Web服务
网络资源
Delphi/Perl
Python
CSS/Script
Flash/Flex
手机开发
UML理论/建模
并行计算/云计算
嵌入式开发
计算机应用/办公自动化
数据结构与算法
SEO
最近更新
重难点解析广东深圳市宝安中学物理八年级下..
2024年小学开学的教师讲话稿4篇
2024年小学年级组长工作总结(12篇)
重难点解析四川绵阳南山中学双语学校物理八..
2024年小学学期工作计划模板集合5篇
重庆市九龙坡区物理八年级下册期末考试专项..
2024年小学六年级英语教师个人工作总结(精..
社区功能条件
资深经纪人的谈判技巧
155 mm火炮不同膛线结构与弹带作用力研究
县级医院二甲复审卫生部医院评审临床科室督..
2023年同等学力申硕法学学科综合水平考试真..
缺血性肠病教学查房
师德师风问题整改台帐
CNG撬车发生泄漏应急处置方案
计算机毕业论文计算机仿真在制造业的应用论..
职业生涯评估与修正ppt课件
机电班-苹果分拣机构设计说明书
毕业设计(论文)-基于PLC的三层电梯控制系..
在线
客服
微信
客服
QQ
客服
意见
反馈
手机
查看
返回
顶部