面试iOS 开发 iOS Developer

iOS系统复习(二) 内存Memory

2016-02-24  本文已影响171人  lxyz22zp

一、 内存管理

1 管理方式:MRC(已经很少用) ARC(常用)
ARC:称为自动引用计数,ARC是iOS5推出的功能,通过ARC系统可以自动管理内存。在ARC下只要所有的强引用(指针)引用对象,那么该对象就会被释放。

注意: ARC下不允许使用retain、release、retainCount等MRC下使用的方法,如果使用dealloc方法时不允许调用[super dealloc]

二、与内存相关的修饰符

三、Autorelease

autorelease是一种支持引用计数的内存管理方式,autorelease实际上只是把对release的调用延迟了。对于每个autorelease,系统只是把该对象放入了当前的autorelease pool中,当该pool释放时,该pool中的所有对象会被调用release

注意: ARC下之能使用@ autoreleasepool block,尽量避免对大内存使用该方法。不要把大量的循环操作放到统一个autorelease pool中,这样会造成内存峰值。

问题:autorelease pool 什么时候释放

四、内存泄露(memory leak)

五、循环引用

六、OC对象与CF对象的桥接

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
CFURLRef urlRef = (__bridge_retained CFURLRef)url;
CFRelease(urlRef);

上一篇下一篇

猜你喜欢

热点阅读