首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JasonLee121
掘友等级
iOS/mac 安全逆向
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
56
文章 56
沸点 0
赞
56
返回
|
搜索文章
最新
热门
Timer强引用问题与循环引用
Timer强引用 假设VC有一个timer正在执行,如果不调用[self.timer invalidate];,当我们pop回去的时候timer还会一直执行并且VC的dealloc不会调用,也就是VC
iOS内存管理-引用计数 retain,release,taggedPointer
oc中的内存管理是通过引用计数来控制对象的释放回收的,在MRC中,reatan操作之后引用计数+1,release引用计数-1,当引用计数为0时则对象释放 retain 看源码 首先判断是否是tagg
内存布局(五大区)
内存分布 内存分为五大区域 栈区,由系统自动分配,函数,方法,局部变量一般存储在栈区,比如 int a = 1; a就存储在栈区 一般以 0X7开头 堆区,允许程序员手动申请,需要程序员主动释放,一般
AutoreleasePool
本质 aotoreleasepool 到底是个什么样的结构呢,clang一下看一下他的本质结构, clang -rewrite-objc main.m -o main.cpp 这里会先调用 objc_
MethodSwizzling
方法交换 坑点1 例子: 很明数组越界报异常,那么就可以利用runtime,进行方法hook 发现还是报错 -[__NSArrayI objectAtIndex:]怎么会是他呢,不是NSArray么?
Block分析
Block本质 block本质为一个结构体也可以说是一个匿名函数 我们可以利用clang来进行分析 我们也可以找到block的源码 Block分类 block分为6种 常用的有三种: _NSConcr
weak 原理
weak作用 weak我们常用来解决循环引用,因为weak修饰的对象引用计数不会增加,当对象释放的时候回自动置为nil,不会造成野指针.
load 和 initialize方法调用
我们前边说,程序启动肯定会来到 接下来研究一下load_images load_images 这里重点代码在prepare_load_methods和call_load_methods 1. prep
类拓展和关联对象
能否向编译好的类中增加实例变量,能否向运行时创建的类中添加实力变量 不能向编译好的类中增加实例变量 只要类没有注册到内存中还是可以添加的 原因: 我们编译好的实例变量存储在ro中,一旦编译完成,内存结
类和分类的加载
懒加载类和非懒加载类 在 类的加载 篇章里边 我们说了加载了类,分类,协议等等一些事情,注释我们可以看出来这里加载的是非懒加载的类.那么怎么区分懒加载类和非懒加载类呢 非懒加载类:实现了+(void)
下一页
个人成就
文章被点赞
5
文章被阅读
14,182
掘力值
369
关注了
18
关注者
6
收藏集
8
关注标签
1
加入于
2020-03-05