Objective-C内存管理
来源:互联网 发布:最火的网络武侠小说 编辑:程序博客网 时间:2024/04/30 11:32
原文地址:http://c.gzl.name/archives/category/cocoa/cmem
Objective-C内存管理
1,你初始化(alloc/init)的对象,你需要释放(release)它。例如:
NSMutableArray aArray = [[NSArray alloc] init];
后,需要
[aArray release];
2,你retain或copy的,你需要释放它。例如:
[aArray retain]
后,需要
[aArray release];
3,被传递(assign)的对象,你需要斟酌的retain和release。例如:
obj2 = [[obj1 someMethod] autorelease];
对象2接收对象1的一个自动释放的值,或传递一个基本数据类型(NSInteger,NSString)时: 你或希望将对象2进行retain,以防止它在被使用之前就被自动释放掉。但是在retain后,一定要在适当的时候进行释放。
对autorelease的误解
Cocoa的内存管理分为 索引计数法(Reference Counting/ Retain Count)和 垃圾收集法(Garbage Collection)。
而iPhone上目前只支持前者,所以autorelease就成为很多人的“捷径”。
但是!autorelease其实并不是“自动释放”,不像垃圾收集法,对对象之间的关系侦测后发现垃圾-删除。
autorelease其实是“延后释放”,在一个运行周期后被标记为autorelease会被释放掉。
切记小心使用autorelease,理解autorelease,防止在你还需要该对象的时候已经被系统释放掉了。
- objective-c内存管理
- Objective-c 内存管理
- Objective-C内存管理~~
- Objective-C内存管理
- Objective-C 内存管理
- Objective-C 内存管理
- Objective-C 内存管理
- Objective-C内存管理
- objective-c 内存管理
- objective-c 内存管理
- Objective-C 内存管理
- Objective-C内存管理
- Objective-C 内存管理
- objective-c内存管理
- objective-c内存管理
- Objective-c 内存管理
- Objective-C 内存管理
- Objective-C 内存管理
- 将Python程序打包为Windows可执行文件格式
- 桥接方式下虚拟机在局域网的通信问题
- 1065 Wooden Sticks
- 软件测试停止标准
- pz之1212
- Objective-C内存管理
- 为什么会出现 java.util.ConcurrentModificationException 异常?
- xml
- 写伟大的测试:最好与最坏的实践
- 原来博客的用处真的很大耶~~
- ConcurrentModificationException主要原因及处理方法
- http://www.programmer.com.cn/4920/
- session监听器(可用于统计在线人数,了解系统当前的使用客户)
- shell基础学习之正则表达式