内存管理原则(配对原则):只要出现了new,alloc,retain方法,就要配对出现release,autorelease1:对象存入到自动释放池中,当这个池子被销毁的时候他会对池子中所有的对象进行一次release操作。2:autorelease 加入几次,就会被释放几次3:不管你这个对象时在@...
分类:
移动开发 时间:
2015-03-02 22:26:48
阅读次数:
208
1.什么是 instancetype?同 id 一样,都是表示未知类型的对象.2.关联返回类型的方法根据 Cocoa 规则, 满足下列规则的方法:1.类方法中,以 alloc 或 new 开头.2.实例方法中,以 autorelease,init,retain或 self 开头的这些方法,会返回一个...
分类:
其他好文 时间:
2015-03-02 14:41:06
阅读次数:
112
提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是"本地变量"一、简介ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切注意:A...
分类:
其他好文 时间:
2015-02-25 18:22:56
阅读次数:
176
答:开了ARC就不能发送autorelease消息了
分类:
其他好文 时间:
2015-02-23 22:29:33
阅读次数:
158
//创建自动释放池 @autoreleasepool { //autorelease会将对象放入自动释放池中,并返回该对象本身 //当自动释放池销毁时,将自动调用对象的release方法 Person *p = [[[Person alloc]...
分类:
其他好文 时间:
2015-02-16 16:50:28
阅读次数:
127
一、简介ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切注意:ARC 是编译器特性,而不是 iOS 运行时特性(除了weak指针系统),它也...
分类:
其他好文 时间:
2015-02-11 16:02:01
阅读次数:
215
一.autorelease方法 又叫做半自动释放1.调用方式--【对象变量 autorelease】他会返回对象本身,并且会将对象放到一个自动释放池(自动释放池也是个对象)2.方法运行原理:当自动释放池被销毁时,会对池子里面的所有对象做一次release操作3.@autoreleasepool{}-...
分类:
其他好文 时间:
2015-02-07 00:22:26
阅读次数:
243
快速创建对象的类方法的进化历程:原始版本:+ (Book *)book { return [ [[Book alloc] init] autorelease];}进化一版本:+ (id)book { return [ [[self alloc] init] autorelease];}进化二版本:+...
分类:
移动开发 时间:
2015-02-04 00:15:43
阅读次数:
278
1.作用1.1 给对象发送一条autorelease消息, 会将对象放到一个自动释放池中1.2 当自动释放池被销毁时,会对池子里面的所有对象做一次release操作1.3 会返回对象本身1.4 调用完autorelease方法后,对象的计数器不变2.好处2.1 不用再关心对象释放的时间,有利于规避坏...
分类:
移动开发 时间:
2015-02-04 00:14:17
阅读次数:
1589
一 概念
iOS在程序在运行的过程中,会创建很多个释放池,自动释放池以栈的形式存放的(先进后出)。
对象调用autorelease时,会被放入栈顶的自动释放池中。
当自动释放池销毁时,会对池的所有对象发送一次release消息;
所以发送autorelease之后引用计数不会立即-1。
autorelease返回对象本身。
二 实例
// Person.h
@interf...
分类:
移动开发 时间:
2015-01-30 10:51:22
阅读次数:
158