您的位置:首页 > 其它

内存管理高级

2015-12-03 22:48 183 查看
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的一样
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: