从今天开始学习ios,入门第二天(Object-C学习笔记)内存管理
2015-11-28 21:22
579 查看
Object-C在ios系统上不适用垃圾回收机制,而是采用手动引用计数的方式。每个对象都被分配一个引用计数,我们称之为retain count。
计数规则:
如果一段代码用到这个对象,则retain count的值+1。
当用完这个对象时,retain count的值-1.
当一个对象的retain count的值为0时,就要释放该对象的内存。
1.使用release方法释放内存,防止内存泄露
- (void)simpleMethod
{
SimpleClass *simpleClassInstance = [ [SimpleClass alloc] init];
simpleClassInstance->firstInt=5;
simpleClassInstance->secondInt=5;
[simpleClass sum];
[simpleClass release];
}
2.使用自动释放池进行自动释放
- (void)simpleMethod
{
SimpleClass *simpleClassInstance = [[SimpleClass alloc] init];
[simpleClassInstance autorelease];
simpleClassInstance->firstInt=5;
simpleClassInstance->secondInt=5;
[simpleClass sum];
}
3.警告:NSObject类有一个属性叫retainCount,即不要相信它的值也不要使用它。它只是用来临时判断一个对象何时被释放或检查内存泄露。
计数规则:
如果一段代码用到这个对象,则retain count的值+1。
当用完这个对象时,retain count的值-1.
当一个对象的retain count的值为0时,就要释放该对象的内存。
1.使用release方法释放内存,防止内存泄露
- (void)simpleMethod
{
SimpleClass *simpleClassInstance = [ [SimpleClass alloc] init];
simpleClassInstance->firstInt=5;
simpleClassInstance->secondInt=5;
[simpleClass sum];
[simpleClass release];
}
2.使用自动释放池进行自动释放
- (void)simpleMethod
{
SimpleClass *simpleClassInstance = [[SimpleClass alloc] init];
[simpleClassInstance autorelease];
simpleClassInstance->firstInt=5;
simpleClassInstance->secondInt=5;
[simpleClass sum];
}
3.警告:NSObject类有一个属性叫retainCount,即不要相信它的值也不要使用它。它只是用来临时判断一个对象何时被释放或检查内存泄露。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- AS3自写类整理笔记 ClassLoader类第1/2页
- AS3自写类整理笔记 Dot类第1/2页
- DB2新手使用的一些小笔记:新建实例、数据库路径不存在、客户端连接 .
- PostgreSQL新手入门教程
- Lua的内存管理浅析
- perl脚本学习指南--读书笔记
- 《C++ primer plus》读书笔记(三)
- 《C++ primer plus》读书笔记(二)
- Ajax PHP简单入门教程代码
- Nodejs学习笔记之入门篇
- 跟我学习JScript的Bug与内存管理
- jQuery入门 构造函数
- jQuery入门介绍之基础知识