(1)	@autoreleasepool { }//自动释放池代表,池子将要被销毁,对池子中所有的对象进行一次release操作
(2) 不管你这个对象时在@autoreleasepool 之内创建的还是在之外创建的,只要你在池子中调用了autorelease那么这个对象就会被放入到池子中
(3) 只有在自动释放池的作用域中调用对象的autorelease方法才能够正确的讲对象放入到池子中
(4) 如果在自动释放池中一个对象被多次释放[autorelease],那么会报野指针错误 ----------------------------验证代码--------------------- //
// main.m
// //内存管理原则(配对原则):只要出现了new,alloc,retain方法,就要配对出现release,autorelease
//对象存入到自动释放池中,当这个池子被销毁的时候他会对池子中所有的对象进行一次release操作
//怎么把对象存到池子中
#import <Foundation/Foundation.h>
#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;
}

  

OC 内存管理-02 autorelease 概念 以及用法的更多相关文章

  1. OC 内存管理-02 ARC 内存管理

    ARC 管理 概念: ARC简单,不用程序员在去管理内存 1.强指针 Strong[] :只要有强指针指向一个对象,那么系统就不会回收该对象 2.弱指针 weak :只要没有强指针指向对象,系统立即回 ...

  2. OC 内存管理机制总结

    OC 内存管理机制总结 一:OC内存管理机制目前分为两块,其一自动内存管理机制,其二手动内存管理机制: 1.首先我们从自动内存管理机制讲起: 1)什么是自动内存管理机制,自动内存管理机制就是程序中所创 ...

  3. OC内存管理-黄金法则

    1.内存管理-黄金法则 The basic rule to apply is everything that increases the reference counter with alloc, [ ...

  4. OC内存管理总结,清晰明了!

    <span style="font-size:18px;">OC内存管理 一.基本原理 (一)为什么要进行内存管理. 由于移动设备的内存极其有限.所以每一个APP所占的 ...

  5. 31 (OC)* 内存管理

    31 (OC)  内存管理 一:内存管理黄金法则. 如果对一个对象使用了alloc.[Mutable]copy,retain,那么你必须使用相应的realease或者autorelease 二:内存管 ...

  6. OC内存管理基础

    OC 内存管理基础 一. retain和release基本使用 使用注意: 1.你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作) 2.你不想再使用(占用)某个对象,就 ...

  7. QF——OC内存管理详解

    堆的内存管理: 我们所说的内存管理,其实就是堆的内存管理.因为栈的内存会自动回收,堆的内存需要我们手动回收. 栈中一般存储的是基本数据类型变量和指向对象的指针(对象的引用),而真实的对象存储在堆中.因 ...

  8. OC内存管理-OC笔记

    内存管理细节:http://blog.sina.com.cn/s/blog_814ecfa90102vus2.html 学习目标 1.[理解]内存管理 2.[掌握]第一个MRC程序 3.[掌握]内存管 ...

  9. 浅谈OC内存管理

    一.基本原理 (一)为什么要进行内存管理. 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空 ...

随机推荐

  1. Virtualbox环境中安装Oracle 11gr2 RAC(ASM)

    系统Oracle Linux 6.5,Oracle 11.2.0.1 终于开始安装ASM和RAC的行程了.开始前需要想清楚的几个事情: 如何规划网络配置(配置多网卡,实现连通性,规划内外网,eth0, ...

  2. 8、面向对象class

    对象的概念同其他语言的对象相同 一个基本的类 #!/usr/bin/python class person: def hi(self,name): print 'Hello,%s'%name p1= ...

  3. @import url(../image/css)的用法

    1.@import url(../image/css);可以加载css文件2.@import url(../image/css);可以写在html里加载css文件,也可以写在css文件里加载css文件 ...

  4. 一天干掉一只Monkey计划(一)——基本光照模型及RT后处理 【转】

    http://www.cnblogs.com/Zephyroal/archive/2011/10/10/2206530.html 一天干掉一只Monkey计划(一)——基本光照模型及RT后处理 1, ...

  5. FX Composer VS RenderMonkey 【转】

    http://blog.csdn.net/debugconsole/article/details/50905398 FX COMPOSER 其实编辑一个shader到debug它,有很多方法,很多方 ...

  6. 字符串去重(hashSet)

    public static String deleteRepeat(String strn){          String s=strn;        String[] array = s.sp ...

  7. [TypeScript] Export public types from your library

    If you're a library author, it's useful to expose your public types as interfaces, to allow your con ...

  8. [Spring Boot] Adding JPA and Spring Data JPA

    JPA is just like a helper class for providing data for Controller, has method like 'findOne', 'findA ...

  9. SkipList的实现

    当做笔记记录下来:) 相比于bTree,skiplist占用更多的空间. 而在并发的环境下skiplist会比bTree效率更高. (bTree插入的时候需要rebalance,需要lock比较多的结 ...

  10. POJ 3071 Football 【概率DP】

    Football Football Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3734   Accepted: 1908 ...