//

//  main.m

//  01-autorelease基本概念

//

//  Created by apple on 14-3-18.

//  Copyright (c) 2014年 apple. All rights reserved.

//

//内存管理原则(配对原则):只要出现了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

//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 {

//存入多少次auto re le a se调用多少次re le a se

[p autorelease];//加入第一次

[p autorelease];//加入第二次

NSLog(@"abc");

}//[p release]0 [p release](第二次野指针操作)

NSLog(@"cbd");

*/

//示例5

/*

//1

Person * p = [[Person alloc] init];

@autoreleasepool {

@autoreleasepool {

//在哪个池子调用auto re le a se作用域就在哪个池子

[p autorelease];

}//[p release] 0

}

*/

Person * p = [[Person alloc] init];

@autoreleasepool {

[p autorelease];

@autoreleasepool {

[p autorelease];

}//[p release] 0

}//[p release];

return 0;

}

autorelease基本概念的更多相关文章

  1. 2016 - 2 - 20 ARC知识总结(二 autorelease概念及实现)

    首先祝自己生日快乐~23咯~ 一  autorelease的概念 autorelease会像C语言的自动变量那样来对待对象实例.当超出作用域(相当于变量作用域)时,对象的实例release实力方法被调 ...

  2. autorelease基本使用

    1.autorelease基本概念 autorelease是一种支持引用计数的内存管理方式,只要给对象发送一条autorelease消息,会将对象放到一个自动释放池中,当自动释放池被销毁时,会对池子里 ...

  3. iOS开发--引用计数与ARC

    以下是关于内存管理的学习笔记:引用计数与ARC. iOS5以前自动引用计数(ARC)是在MacOS X 10.7与iOS 5中引入一项新技术,用于代替之前的手工引用计数MRC(Manual Refer ...

  4. OC基础(16)

    autorelease基本使用 autorelease注意事项 *:first-child { margin-top: 0 !important; } body > *:last-child { ...

  5. iOS内存管理 ARC与MRC

    想驾驭一门语言,首先要掌握它的内存管理特性.iOS开发经历了MRC到ARC的过程,下面就记录一下本人对iOS内存管理方面的一些理解. 说到iOS开发,肯定离不开objective-c语言(以下简称OC ...

  6. iOS-引用计数与ARC(转)

    以下是关于内存管理的学习笔记:引用计数与ARC. iOS5以前自动引用计数(ARC)是在MacOS X 10.7与iOS 5中引入一项新技术,用于代替之前的手工引用计数MRC(Manual Refer ...

  7. OC-ARC,类扩展,block

    总结 标号 主题 内容 一 autorelease autorelease基本概念/自动释放池/autorelease基本使用 二 autorelease注意事项 注意点/应用场景 三 ARC 什么是 ...

  8. OC 内存管理-02 autorelease 概念 以及用法

    (1) @autoreleasepool { }//自动释放池代表,池子将要被销毁,对池子中所有的对象进行一次release操作 (2) 不管你这个对象时在@autoreleasepool 之内创建的 ...

  9. RunLoop和autorelease的一道面试题

    有这么一道iOS面试题 以下代码有没有什么问题?如果有?如何解决? for (int i = 0; i < largeNumber; i++) { NSString *str = [NSStri ...

随机推荐

  1. html5:服务器事件推送(server-sent events)Asp.net

    支持 不支持IE 个人理解说明 个人理解:这种消息推送方式不太推广,原因有以下三点~~~`我怎么老是学这些自己认为不会推广的东西呢~汗 在.net中,framework4.5以上就可以由SignalR ...

  2. Sql Group by 使用

    CREATE TABLE StuCourseScore ( ID int, Name nvarchar(10), Course nvarchar(10), Score int ) INSERT Stu ...

  3. PHP+jQuery 注册模块开发

    /* ******* 环境: Apache2.2.8 + PHP5.2.6 + MySQL5.0.51b + jQuery-1.8.3.min.js ************** 其他组件:Zend_ ...

  4. PHP file_get_contents函数读取远程数据超时的解决方法

    PHP file_get_contents函数读取远程数据超时的解决方法 投稿:junjie 字体:[增加 减小] 类型:转载   这篇文章主要介绍了PHP file_get_contents函数读取 ...

  5. 去除GHOST版系统自带的2345流氓软件

    话说2345真心流氓  用户想用你 自然不会删你 你这样强制性的 反而引起反感 应该是软件劫持性的捆绑 所以非常难起清除 最方便的方法就是 下载个 黄山IE修复专家   先把IE修复好 然后删除预安装 ...

  6. python 动态加载module、class、function

    python作为一种动态解释型语言,在实现各种框架方面具有很大的灵活性. 最近在研究python web框架,发现各种框架中需要显示的定义各种路由和Handler的映射,如果想要实现并维护复杂的web ...

  7. Machine Learning in Action -- 回归

    机器学习问题分为分类和回归问题 回归问题,就是预测连续型数值,而不像分类问题,是预测离散的类别 至于这类问题为何称为回归regression,应该就是约定俗成,你也解释不通 比如为何logistic ...

  8. 【转】 Build a RESTful Web service using Jersey and Apache Tomcat 2009

    Build a RESTful Web service using Jersey and Apache Tomcat Yi Ming Huang with Dong Fei Wu, Qing GuoP ...

  9. 蓝牙4.0(包含BLE)简介

    1. BLE   (低功耗蓝牙)简介 国际蓝牙联盟( BT-SIG,TI  是 企业成员之一)通过的一个标准蓝牙无线协议. 主要的新特性是在蓝牙标准版本上添加了4.0 蓝牙规范 (2010 年6 月 ...

  10. C++ 实现 发送HTTP Get/Post请求 good

    1.简述 最近简单看了一下关于HTTP请求方面的知识,之前一直用Qt来实现,有专门HTTP请求的QNetworkAccessManager类来处理,实现也比较简单,这里主要讲解一下用C++代码来实现H ...