MRC这个词应该是我编的,ARC,Automatic Reference Counting,手工引用计数就应该是:Manual Reference Counting,那就应该是MRC喽,不过没有见人这样用过。ARC引入了新的语句管理自动释放池语法:@autoreleasepool { // Cod....
分类:
其他好文 时间:
2014-11-22 18:50:00
阅读次数:
187
知识点 值类型。 值类型是在栈中分配内存,在声明时初始化才能使用,不能为null。 值类型超出作用范围系统自动释放内存。 主要由两类组成:结构,枚举(enum),结构分为以下几类: 1、整型(Sbyte、Byte、Char、Short、Ushort、Int、Uint、Long、Ulong) ...
1.autorelease的基本用法1> 会将对象放到一个自动释放池中2> 当自动释放池被销毁时,会对池子里面的所有对象做一次release操作3> 会返回对象本身4> 调用完autorelease方法后,对象的计数器不变2.autorelease的好处1> 不用再关心对象释放的时间2> 不用再关心...
分类:
其他好文 时间:
2014-11-20 20:12:54
阅读次数:
155
(1) @autoreleasepool { }//自动释放池代表,池子将要被销毁,对池子中所有的对象进行一次release操作(2) 不管你这个对象时在@autoreleasepool 之内创建的还是在之外创建的,只要你在池子中调用了autorelease那么这个对象就会被放入到池子中(3) 只有...
分类:
其他好文 时间:
2014-11-19 17:56:06
阅读次数:
122
Objective-C的内存基本管理在OC中每个变量都保存着引用计数器,当这个对象的引用计数器为0的时候该对象会被回收。当使用alloc、new或者copy创建一个对象的时候,对象的引用计数器被置为1.给对象发送一条retain消息,可以使引用计数器+1.给对象发送一条release消息,可以使引用计数器-1.当OC被销毁的时候会发送一条dealloc消息(不要直接调用,由系统调用),可以重写de...
分类:
其他好文 时间:
2014-11-14 01:39:32
阅读次数:
172
一:autorelease1> autorelease原理:将我们创建的对象放到一个对象释放池中(是一个栈区)当池子释放时,会将池子中的对象都做一次release操作(自动释放池存放在一个池子中,就近原则,符合先进后出)2>自动释放池的创建方式(1)ios5.0以前的创建方式NSAutoreleas...
分类:
其他好文 时间:
2014-11-10 23:16:43
阅读次数:
249
当项目为手动释放时,Build Settings中,Objective-c Automatic Reference Conting 为YES 时,想要手动管理一些文件,在CompileSources中选中你之前的没有用过ARC的文件,双击,添加-fno-objc-arc,就ok了。
当项目为自动释放时,Build Settings中,Objective-c Automatic Referen...
分类:
移动开发 时间:
2014-11-10 19:58:32
阅读次数:
223
相比较NSOperation和NSThread,GCD提供了更简单的操作实现多线程,多线程下也无需创建自动释放池,而且GCD开发只有两个步骤1 创建队列2 提交任务到队列队列GCD创建的队列有两种,一种是串行队列,一种是并行队列,在串行队列中每次只执行一个任务,依次执行下去,而在并行队列中每次可以同...
分类:
移动开发 时间:
2014-11-09 16:33:50
阅读次数:
276
在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 线程的分离状态...
分类:
编程语言 时间:
2014-11-03 16:11:36
阅读次数:
190
使用容器的block版本的枚举器时,内部会自动添加一个AutoreleasePool:Autorelease对象是在当前的runloop迭代结束时释放的,而它能够释放的原因是系统在每个runloop迭代中都加入了自动释放池Push和Pop当然,在普通for循环和for in循环中没有,所以,还是新版...
分类:
其他好文 时间:
2014-11-01 20:22:42
阅读次数:
208