首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
源码与原理系列
订阅
manajay
更多收藏集
微信扫码分享
微信
新浪微博
QQ
5篇文章 · 0订阅
GCD 捕获 self 是否会造成内存泄漏?
关于 GCD 的 block 捕获 self 是否造成循环引用的问题,网上是争论不休,在 iOS 的面试中更是频繁出现。我们从 YYKit 里面的一个 Issue 出发,来探索一下 GCD 跟 self 之间是否会造成循环引用的问题。 可以看到,YY 大神在 GCD 中,为了避…
深入研究 Runloop 与线程保活
在讨论 runloop 相关的文章,以及分析 AFNetworking(2.x) 源码的文章中,我们经常会看到关于利用 runloop 进行线程保活的分析,但如果不求甚解的话,极有可能因此学会了一个错误的用法,本文就来分析一下其中常见的误区。 我提供了一个 Demo,可以在我的…
iOS 浅谈 Runloop
关于 Runloop ,尽管早就知道它的本质实现是一个循环,但笔者还是一直很困惑它的作用是什么 ,不过最近整理相关知识总算是理解了。 代码的执行逻辑是自上而下的,如果没有 Runloop ,代码执行完毕后,程序就退出了,对应到实际场景就是 APP 一打开立马就退出了。 例如上面…
Runtime源码 autoreleasepool
这里可以看到整个 iOS 的应用都是包含在一个自动释放池 block 中的。那么这个autoreleasepool到底是什么呢?接下来我们来一窥究竟。 终于看到他的结构了,总的来说,其实每一个自动释放池都是由一系列的 AutoreleasePoolPage 组成的,并且每一个 …
iOS 深入探究 AutoreleasePool
AutoreleasePool (下面称为缓存池)是 iOS 开发中的一种内存管理的机制,对象调用 autorelease 方法后会被放到缓存池中延迟释放,当缓存池需要清除时,会向这些 Autoreleased 对象发送 release 消息。 这里用 alloc 创建了 co…