dealloc是NSObject的一个实例方法,与alloc对应,用于回收开辟的内存空间,这个方法在对象引用计数为0是,有系统自动调用。通常我们在dealloc中释放类的实例变量。
dealloc的使用:
- (void) dealloc{
[_name release];
setter方法泄露的实例变量
[super dealloc];
}
便利构造器的内存管理:
+(id)personWithName:(NSString *)name{
Person *p =[ [Person alloc]initWithName:name];
return [p autorelease];
只是解决的完美方案,既不会内存泄露,也不会产生野指针。
}
MRC中:
assign:用于非对象类型,即整型、浮点型等基本对象类型。(用于代理)
copy:引用计数不加1,将内容拷贝一份到另一个内存空间。(NSString 和block语法 用)
retain:引用计数加1,指针指向同一块内存。
ARC中:
strong:即MRC中的retain
weak:用于代理(delegate)
copy:和MRC中的一样
assign:和MRC的一样