博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC 内存管理-02 autorelease 概念 以及用法
阅读量:7114 次
发布时间:2019-06-28

本文共 2138 字,大约阅读时间需要 7 分钟。

(1)	@autoreleasepool { }//自动释放池代表,池子将要被销毁,对池子中所有的对象进行一次release操作(2)	不管你这个对象时在@autoreleasepool 之内创建的还是在之外创建的,只要你在池子中调用了autorelease那么这个对象就会被放入到池子中(3)	只有在自动释放池的作用域中调用对象的autorelease方法才能够正确的讲对象放入到池子中 (4)	如果在自动释放池中一个对象被多次释放[autorelease],那么会报野指针错误----------------------------验证代码---------------------////  main.m////内存管理原则(配对原则):只要出现了new,alloc,retain方法,就要配对出现release,autorelease//对象存入到自动释放池中,当这个池子被销毁的时候他会对池子中所有的对象进行一次release操作//怎么把对象存到池子中#import 
#import "Person.h"int main(int argc, const char * argv[]){ /* 示例1 //自动释放池 //大括号代表池子的作用域 @autoreleasepool { //release 功能 retaincount - 1 //autorelease 好像功能也是 retaincount - 1 ? //1 Person * p = [[Person alloc] init];// [p release];//retainCount立即 -1 [p autorelease]; //autorelease方法的作用只是将对象放入到池子中,然后返回一个self NSLog(@"asdfasdf"); }//代表,池子将要被销毁,对池子中所有的对象进行一次release操作,[p release] 0 */ /* //autoreleasepool我么可以自己随意的创建 // 示例2 //1//不管你这个对象时在@autoreleasepool 之内创建的还是在之外创建的,只要你在池子中调用了autorelease那么这个对象就会被放入到池子中 Person * p = [[Person alloc ] init]; @autoreleasepool { [p autorelease]; }//p 0 */ // 示例3 /* //1 只有在自动释放池的作用域中调用对象的autorelease方法才能够正确的讲对象放入到池子中 Person * p = [[Person alloc] init]; [p autorelease]; NSLog(@"aaaa"); @autoreleasepool { } NSLog(@"bbb"); */ //示例4 /* // 1 Person * p = [[Person alloc] init]; @autoreleasepool { [p autorelease];//加入第一次 [p autorelease];//加入第二次 NSLog(@"abc"); }//[p release]0 [p release] NSLog(@"cbd"); */ //示例5 /* //1 Person * p = [[Person alloc] init]; @autoreleasepool { @autoreleasepool { [p autorelease]; }//?[p release] 0 } */ Person * p = [[Person alloc] init]; @autoreleasepool { [p autorelease]; @autoreleasepool { [p autorelease]; }//[p release] 0 }//[p release]; return 0;}

  

转载地址:http://ehghl.baihongyu.com/

你可能感兴趣的文章
单元测试利器 JUnit 4
查看>>
[TopCoder] SRM580, DIV1, 600p, Solution
查看>>
linux下修改IP信息
查看>>
编码风格
查看>>
第四章作业
查看>>
centos 6 切换base源
查看>>
[转]VC2005环境下boost_1_34_0编译手记
查看>>
【转】 Understanding Component-Entity-Systems
查看>>
post和get的区别
查看>>
20172313 2018-2019-1 《程序设计与数据结构》实验三报告
查看>>
list_test
查看>>
【Android-功能】Android应用增量更新
查看>>
测试工具。
查看>>
apache2.2与tomcat集成(可以多个tomcat)
查看>>
SCO连接AD / SCOM
查看>>
关于favicon.ico,shortcut icon,icon
查看>>
linux mysql备份数据库
查看>>
NParsing ORM框架使用说明书
查看>>
Java设计模式(七) 模板模式-使用钩子
查看>>
C语言中结构、联合、枚举的说明
查看>>