//

//  main.m

//  02-autorelease应用

//

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

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

//

#import <Foundation/Foundation.h>

#import "Chief.h"

int main(int argc, const char * argv[])

{

@autoreleasepool {

/*

Chief * chi  = [[Chief alloc] init];

Food * food = [chi makeFood];;

NSLog(@"%@",food.name);//[nil name];

[chi release];

*/

Chief * chi = [Chief chief];

Food * food = [chi chiefMakeFood];

NSLog(@"%@",food.name);

NSString * name = [NSString stringWithFormat:@"%@",@"施瓦辛格"];//都是autorelease

NSLog(@"%@",name);

}

return 0;

}

//

//  Chief.m

//  01-autorelease基本概念

//

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

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

//

#import "Chief.h"

@implementation Chief

- (void)dealloc

{

[super dealloc];

NSLog(@"厨师被回收了");

}

+ (Chief *)chief

{

/*

Chief * chi = nil;

chi = [[Chief alloc] init];

//    [chi release];

[chi autorelease];

*/

Chief * chi = [[self alloc] init];

return [chi autorelease];

}

- (Food *)chiefMakeFood

{

//如果在方法中创建一个对象,最好给我初始化为nil,防止出现野指针错误

// 1

Food * food = [[Food alloc] init];

food.name = @"凑豆乳";

//    // 0

//    [food release];

[food autorelease];

return food;

}

@end

autorelease应用的更多相关文章

  1. Autorelease返回值的快速释放机制

    + (instancetype)createSark { return [self new];}// callerSark *sark = [Sark createSark]; 编译器改写成了形如下面 ...

  2. 用类方法------>快速创建一个autorelease的对象,在封装的类方法内部

    在封装的类方法内部,也就是+ (id)personWithName:(NSString *)name andAge:(int)age内部: 创建了一个person对象,并且创建了一个person*类型 ...

  3. 理解autorelease

    如果你能够真正的理解autorelease,那么你才是理解了Objective c的内存管理.Autorelease实际上只是把对release的调用延迟了,对于每一个Autorelease,系统只是 ...

  4. RunLoop和autorelease的一道面试题

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

  5. Autorelease自动释放池的使用

    Autorelease自动释放池的使用 使用ARC开发,只是在编译时,编译器会根据代码结构自动添加了retain.release和autorelease. MRC内存管理原则:谁申请,谁释放 遇到al ...

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

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

  7. 【引】objective-c,6:Autorelease Pool

    参考博客: http://blog.leichunfeng.com/blog/2015/05/31/objective-c-autorelease-pool-implementation-princi ...

  8. 黑马程序员-autorelease pool

    Autorelease:可以延迟给对象发送release消息.发送一个autorelease消息给对象,证明该对象在一定时间内有效,一定时间后会对该对象进行释放,进行一次release. 一个auto ...

  9. 【原】你真的懂iOS的autorelease吗?

    或许这个题目起得有点太高调了,不过我只是想纠正一些童鞋对于autorelease的认识,如果能帮到几个人,那这篇文章也就值得了!当然,高手请绕道 本文主要探讨两个方面:(1)autorelease对象 ...

  10. retain,copy,assign及autorelease ,strong,weak

    一,retain, copy, assign区别 1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b.此时a ...

随机推荐

  1. emacs notepad notepad++ 撤销比较

    以前使用编辑器都是直接上手,未读过什么的文档了解.所谓撤销只是使用,也不了解究竟撤销到何处,阅读了emacs的文档才知道有许多区别呢. 输入this is a pen,然后一个个字符地删除到this ...

  2. Tortoise SVN 更换用户

    由于之前没有找到 svn 的安装路径,所以用了同事的 svn 账号,今天找到了并且添加了用户,所以 tortoise svn 要更换用户: ① ② ③ 需要清除的 svn 账号打上勾 参考:svn怎么 ...

  3. centos7 安装mysql5.7及配置

    一.Mysql 各个版本区别:1.MySQL Community Server 社区版本,开源免费,但不提供官方技术支持.2.MySQL Enterprise Edition 企业版本,需付费,可以试 ...

  4. 图文解说:Nginx+tomcat配置集群负载均衡

    图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用  作者:niumd Blog:http://ari.iteye ...

  5. 【Xamarin笔记】Events, Protocols and Delegates

    Events, Protocols and Delegates   事件.协议和委托 This article presents the key iOS technologies used to re ...

  6. Web--RSS

    --用处:SEO,让别人订阅你的文章

  7. 1st-code-review summary

    每次做code review,先贤谆谆教诲便在耳畔响起: "There are only two hard problems in Computer Science: cache inval ...

  8. faker image

    $faker->image http://placehold.it http://placekitten.com/g/200/300 带文字 https://placeholdit.imgix. ...

  9. Programs vs. processes

    Computer Systems A Programmer's Perspective Second Edition This is a good place to pause and make su ...

  10. regardless of how many processors are devoted to a parallelized execution of this program

    https://en.wikipedia.org/wiki/Amdah's_law Amdahl's law is often used in parallel computing to predic ...