1、如果想要调用release,必须开启ARC
2、[实例对象 autorelease] 这个方法就是吧实例对象放到自动释放池中。(内存报警或者程序结束时自动释放)
3、@autoreleasepool {} 自动释放池。
自动内存管理/ARC(Automatic Reference Counting)
1、自动内存管理
编译器自动的添加完成了内存管理的引用计数代码。(苹果公司支持用的)
2、ARC使用原则
3、ARC/MRC混编
ARC原则
1、代码中不能使用retain,release,autorelease
2、不重载dealloc(可以重写覆盖,不能调用)(如果是释放对象内存以外的处理,是可以重载该函数的,但是不能调用)
3、不能使用NSAllocateObject,NSDeallocateObject
4、不能再C结构体中使用对象指针
5、id与void*间的如果cast时需要用特定的方法
6、不能使用NSAutoReleasePool、而需要@autoreleasepool块
7、不能使用”new“开始的属性名称(如果使用会有下面的编译错误)
ARC和MRC(手动内存管理)混编
MRC口诀
1、谁创建,谁释放,如果你通过alloc new copy来创建一个对象,那么你必须调用release或者这
autorrelease。换句话说,,不是你创建的,你就不用去释放。
例如你在函数中alloc生成了一个对象,且这个对象只再这个函数中被使用,那么你必须在这个函数
中调用release或者autorelease,如果你在一个class的某个方法中调用release,如果调用了autorelease
那么再dealloc方法中声明都不需要做
2、除了alloc、new、copy之外的方法创建的对象都被声明了autorelease。
3、谁retain,谁release。只要你调用了retain,无论这个对象是如何生成的,你都要调用release