iOS内存管理学习心得
来源:互联网 发布:香港有线电视台软件 编辑:程序博客网 时间:2024/05/01 11:39
iOS中使用用内存引用计数来进行管理。(ARC,MRC)
alloc, retain, copy会使内存引用计数立即+1。
当对象使用结束后要对它进行释放,release(立即-1) ,autorelease(未来-1)。
autorelease的对象会把这个对象放置到离它最近的自动释放池里,自动释放池释放的时候才会把自动释放池中的所有对象的内存引用计数-1。
// autorelease // 创建自动释放池 //第一种 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; // autorelease的对象会把这个对象放到离的最近的自动释放池里, 自动释放池释放的时候才会将自动释放池中的所有对象的引用计数- 1 Student *stu1 = [[Student alloc] init]; [stu1 autorelease]; Student * stu2 = [[[Student alloc] init] autorelease]; //release / drain 二选一 [pool release]; //[pool drain]; // 第二种 @autoreleasepool { Student *stu3 = [[[Student alloc] init] autorelease]; } // (栈的特性,先进后出)越晚autorelease的对象越早释放 @autoreleasepool { Car *myCar = [[Car alloc] init]; Student *myStudent = [[Student alloc] init]; [myStudent setCarBmw:myCar]; [myCar release]; // Car *a = [myStudent bmw]; [myStudent release]; } Person *p1 = [[Person alloc] initWithName:@"lla"]; //copy必须是返回一个内存引用计数为1的对象 Person *p2 = [p1 copy]; [p2 release]; [p1 release];
当对象被添加到容器里时,内存引用计数+1。
从容器里移除时,内存引用计数-1。
0 0
- iOS内存管理学习心得
- linux下内存管理学习心得(一)
- linux下内存管理学习心得(二)
- IOS 内存管理
- iOS内存 管理 一点
- ios内存管理
- IOS内存管理小结
- iOS内存管理
- 再论iOS内存管理
- iOS内存管理
- IOS 内存管理
- IOS内存管理
- IOS内存管理
- iOS内存管理
- ios 内存管理基础知识
- ios内存管理
- iOS 内存管理
- IOS内存管理详解
- ehcache使用
- Asterisk呼叫中心之freepbx安装(五)
- Error #2044: 未处理的 ioError:。 text=Error #2032
- Mean Shift 概述
- Linux常用命令
- iOS内存管理学习心得
- 对于大数字的运算
- boa服务器在S3C2410开发板上移植
- 在线知识库
- 电脑出现 远程计算机或者设备不受连接
- opencv4-highgui之视频的输入和输出以及滚动条
- [ASP.NET MVC 大牛之路]02 - C#高级知识点概要(1) - 委托和事件
- 串口通讯数据处理算法分析与实现
- 设置IP