Object-C在ios系统上不适用垃圾回收机制,而是采用手动引用计数的方式。每个对象都被分配一个引用计数,我们称之为retain count。
计数规则:
如果一段代码用到这个对象,则retain count的值+1。
当用完这个对象时,retain count的值-1.
当一个对象的retain count的值为0时,就要释放该对象的内存。
1.使用release方法释放内存,防止内存泄露
- (void)simpleMethod
{
SimpleClass *simpleClassInstance = [ [SimpleClass alloc] init];
simpleClassInstance->firstInt=5;
simpleClassInstance->secondInt=5;
[simpleClass sum];
[simpleClass release];
}
2.使用自动释放池进行自动释放
- (void)simpleMethod
{
SimpleClass *simpleClassInstance = [[SimpleClass alloc] init];
[simpleClassInstance autorelease];
simpleClassInstance->firstInt=5;
simpleClassInstance->secondInt=5;
[simpleClass sum];
}
3.警告:NSObject类有一个属性叫retainCount,即不要相信它的值也不要使用它。它只是用来临时判断一个对象何时被释放或检查内存泄露。