iOS 开发 Objective-C

第七篇:Objective-C 知识回顾内存管理之二

2019-11-14  本文已影响0人  望穿秋水小作坊

7.1.自动释放池

问题一:思考如下代码,array是什么时候被释放的?
- (void)viewDidLoad {
    [super viewDidLoad];
    //1.思考如下代码,array是什么时候被释放的?
    NSMutableArray *array = [[NSMutableArray alloc] init];
    NSLog(@"%@", array);
}
问题二:AutoreleasePool 的实现原理是怎么样的?
问题三:AutoreleasePool 为何可以嵌套使用呢?
问题四:AutoreleasePool 的使用场景或者说什么时候需要手动创建?
autoreleasePool 自动释放池的两个基本概念 双向链表的结构图 栈结构的复习 AutoreleasePoolPage 的结构 AutoreleasePoolPage::push方法调用过程 autorealse 的系统内部流程 AutoreleasePoolPage::pop 大致流程

7.2.循环引用

问题一:思考循环引用有哪几种?
问题二:思考如何破除循环引用?
问题三:思考解决循环引用的具体方案有哪些?
问题四:思考__block 会在 MRC 和 ARC 下的表现?
问题四:思考 __unsafe__unretained 的使用注意事项?
思考图中循环引用的点,需要都能有具体代码场景出来
问题五:思考在日常的开发工作中,你是否遇到了循环引用,你是怎么解决的?
NSTimer 破除循环引用的办法,必须要口述出来
上一篇 下一篇

猜你喜欢

热点阅读