大家好。今天简述一下iOS当中的内存管理,自从iOS5出现后,apple增加了ARC机制以后,给开发人员带来了不少的方便,为了来更好地去理解,我们还是有必要去了解的。
1. 在OC中,每个对象都有一个保留计数器,每当我们创建一个对象时都有一个初始值为1的保留计数,每当释放的时候,保留计数都为0;
2. 创建自动释放的对象
要求以一个方法创建对象时,以自动释放的形式返回该对象是一个很好的编程习惯和编程实践。实现代码如下:
+(Person*)person
{
Person *per = [Person alloc] init];
return [per autorelease];
}
3.创建已保留属性
@property(retain)NSArray *colors;
synthesize创建后,自动保留该对象,如果该对象被重新赋值后,前面的值将会被自动释放。
4.创建对象的其他方式
一般规则:通过alloc.new.create.copy的任意方法构建一个对象,就必须承担起释放对象的责任。和类方法不同,带这些字样的方法一般不会返回自动释放的对象
5.释放对象
释放属性:self.year = nil;会调用OC合成的定义赋值方法,并释放以前赋值给该属性的任意对象
释放实例变量(非属性):[age release];实例变量在对象生命周期内,随时可以指向一个保留计数+1的对象必须释放当前赋值给age的任意对象,从而将计数置为0;