摘要:
1、 autorelease的基本使用(1) 给某个对象发送一条 autorelease 消息时,就会将这个对象加到一个自动释放池中。(2) 当自动释放池销毁时,会给池子里面的所有对象发送一条 release 消息。(3) 调用autorelease方法时并不会改变对象的计数器,并且会返回对象本身。... 阅读全文
摘要:
1、什么叫循环引用?循环引用:表示的是两个类之间的关系,A类引用B类,B类同时也引用A类。比如 :编译的时候会报错:A类和B类互相引用,通过#import互相拷贝,没完没了。这个时候我们使用@class,就不会报错。2、@class 的作用 仅仅告诉编译器,某个名称是个类。 @class Per... 阅读全文
摘要:
1、跟内存管理相关的参数(1)retain : release 旧值,retain新值(适用于OC对象类型)。(2)assign : 直接赋值(默认,适用于非OC对象类型)。(3)copy : release旧值,copy新值(一般用于NSString)。2、是否要生成set方法(1)rea... 阅读全文
摘要:
如果你有个OC对象类型的成员变量,就必须管理这个成员变量的内存。比如有个Car *_car1、set方法的实现2、dealloc方法的实现总结:内存管理代码规范1、只要调用了 alloc,必须有 release 或 autorelease。 如果对象不是通过 alloc 创建的,就不需要管理内存。... 阅读全文
摘要:
1、原则分析(1) 只要对象还在被使用,系统就不会回收对象占用的内存。(2) 当你使用对象的时候,就调用 retain 方法,使对象的计数器+1。(3) 当你不再使用对象的时候,就调用 release 方法,使对象的计数器-1。2、内存管理原则(1)谁创建,谁 release 1> 如果你通过al... 阅读全文
摘要:
由于Xcode6.0.1中默认开启ARC(Automatic Reference Counting 自动引用计数器),在学习ARC之前,我们需要做以下两步:(1)要想手动管理内存,调用retain 、 release等方法,需要关闭ARC:(2)默认情况下,Xcode是不会管僵尸对象的,使用一块... 阅读全文
摘要:
内存管理是OC学习中最重要的环节,学而习之,习儿惯之。重点!!!基本原理1、什么是内存管理(1) 移动设备的内存极其有限(比如:iphone4内存只有512M),每个app所能占用的内存是有限制的。(2) 当app所占用的内存较多时,系统会发出内存警告,这时就得回收一些不需要再使用的内存空间。 比... 阅读全文