![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内存管理
眼睛会放光
这个作者很懒,什么都没留下…
展开
-
weak-自动置nil机制
一 、实现runtime在注册类时,会布局一个weak表(hash表),key是所指对象的地址,value是weak指针的地址的数组;当对象释放时,层层调用后,通过arr_clear_deallocating释放;二、weak实现原理步骤:通过clang可以分析源码;objc_initWeak//初始化weak;objc_storeWeak()//修更新指针指向,创建对应的弱引用表...原创 2019-04-03 10:48:36 · 413 阅读 · 0 评论 -
weakSelf+strongSelf
block外:__weak __typeof(self)weakSelf = self;作用:对象释放时,自动对weak指针置nil,self不知道什么时候释放;block内:__strong __typeof(weakSelf) strongSelf = weakSelf;作用:保证self在block执行过程中,一直存在;...原创 2019-04-13 20:35:59 · 102 阅读 · 0 评论 -
arc下获取对象引用计数
NSObject *obj = [[NSObject alloc]init]; NSObject *obj2 = obj; printf("retain count =%ld\n",CFGetRetainCount((__bridge CFTypeRef)(obj)));原创 2019-04-14 17:16:21 · 330 阅读 · 0 评论 -
autoreleasepool
作用:使用局部autoreleasepool,及时对autoreleasepool作用域内,不需要的对象进行及时的释放,防止内存暴涨(含大量临时变量循环、新线程执行时、命令行工具)autoreleasepool官网文档https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/MemoryMgmt/A...原创 2019-04-14 20:49:37 · 136 阅读 · 0 评论