OC 自动释放池学习笔记
2015-10-11 10:56
218 查看
一.自动释放池原理简述,如下:
二.自动释放池应用场景简述,如下:
#import <Foundation/Foundation.h> #import "QIHLPerson.h" // autorelease:延长对象的生命周期。 // 把对象放到离自己最近的那个自动释放池中。 // 自动释放池原理: // 1.运行到@autoreleasepool{ 把该自动释放池压入自动释放池栈中,执行入栈操作。 // 2.运行到对应的 } 执行出栈操作,并对该自动释放池中的所有对象执行一次release操作。 // 3.自动释放池栈中,只有栈顶的自动释放池是活动的,其他都在休眠。 // 4.当调用autorelease时把对象放入自动释放池栈顶的自动释放池中。 // int main(int argc, const char * argv[]) { @autoreleasepool { QIHLPerson *person = [[QIHLPerson alloc] init]; @autoreleasepool { person.name = @"张三"; [person autorelease]; } //这一句会报错,因为autorelease把对象放到最近的自动释放池中,程序执行到这里,person已经执行过一次release操作,引用计数器为0. NSLog(@"%@", person.name); } return 0; }
二.自动释放池应用场景简述,如下:
相关文章推荐
- Java中Runnable和Thread的区别
- 开发专题指南: JEECG高速微云开发平台前言
- iOS 关于应用能打包但是不能提交至App Store的解决办法
- 四、机器学习系统设计笔记之主体模型
- Python 基础语法(二)
- 完全卸载oracle11g步骤
- 大话设计模式笔记 解释器模式
- 如何建立测试管理体系
- POJ 3087 Shuffle'm Up(BFS)
- C# Lambda表达式
- myeclipse 2015 ci 添加tomcat图文教程
- 三、机器学习系统设计笔记之聚类
- 机房收费系统—上下机
- 面向对象第三次作业
- 使用etree.HTML的编码问题
- Linux 硬中断和软中断
- Python Scapy(2.3.1)文档学习(五):构建自己的工具
- Fedora安装Texlive2013时出现Can't locate Digest/MD5.pm的解决方法
- Android 各类功能效果源代码集合
- [51MCU] Chapter1:reg51.h