前言
1)内存泄露是什么: 指的是1个对象没有被及时的回收,在该回收的时候而没有被回收 一直驻留在内存中,直到程序结束的时候才回收。 2)例如,有一个Person类: Person.h文件: @interface Person : NSObject @end Person.m文件: @implementation Person – (void)dealloc { NSLog(@“人挂了。。。”); [super dealloc]; } main.m文件中: Person *p1 = [Person new]; 这时候,就发生了内存泄露,因为这个p1对象,程序结束的时候才回收。
一、单个对象的内存泄露的情况:1)有对象的创建,而没有对应的release 所以,我们要干嘛呢,有对象的创建,就要匹配一个release Person *p1 = [Person new]; [p1 release]; 这个时候,才不会发生内存泄露。 2)retain的次数,和release的次数不匹配: 例如: Person *p1 = [Person new]; [p1 retain]; [p1 release]; 3)在不适当的时候,为指针赋值为nil 例如: Person *p1 =