首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Runtime
订阅
梦翼
更多收藏集
微信扫码分享
微信
新浪微博
QQ
8篇文章 · 0订阅
iOS-底层文章汇总
iOS-1.对象alloc的流程分析 iOS-2.内存对齐原理 iOS-3.Xcode控制台调试常用命令
iOS 混编|为 Objective-C 添加枚举宏,改善混编体验
使用 Objective-C 的你,是否对 NS_CLOSED_ENUM、NS_TYPED_ENUM/NS_TYPED_EXTENSIBLE_ENUM 这几个枚举宏感到陌生呢?
RunLoop概念与使用
运行该代码,会发现threadFired方法并不会调用。为何在子线程就无法生效呢? a. 线程和RunLoop是一一对应的,且互相独立,比如主线程对应mainRunLoop,而子线程也是有它自己所对应的RunLoop。 b. 主线程的RunLoop在应用启动的时候就开始run了…
iOS 底层拾遗:AutoreleasePool
在阳神的 黑幕背后的Autorelease 文章中已经把 AutoreleasePool 核心逻辑讲明白了,不过多是结论性的东西,笔者通读源码以探究更多的细节,验证一下老生常谈的一些结论。 源码基于 Runtime 750。 可以猜测 push 和 pop 操作是实现自动释放的…
iOS 查漏补缺 - PerformSelector
这三个方法应该是使用频率很高的 performSelector 系列方法了,我们只需要记住这三个方法在底层都是执行的消息发送即可。 通过断点调试如下图所示,runloop 底层最终是通过 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBAC…
iOS - 聊聊 autorelease 和 @autoreleasepool
作为 iOS 开发者,在面试过程中经常会碰到这样一个问题:在 ARC 环境下autorelease对象在什么时候释放?如果你还不知道怎么回答,或者你只有比较模糊的概念,那么你绝对不能错过本文。 本文将通过Runtime objc4-756.2版本源码、macOS 与 iOS 工…
iOS进阶-内存管理
堆区 :通过alloc分配对象、block copy... bbs区:未初始化的全局变量、静态变量... data区:已初始化的全局变量、静态变量... 答:有。全局变量存在全局区(bbs区/data区),局部变量存在栈区 apple在内存管理方面提供了三种方案(TaggetP…
内存管理系列—OC的内存管理方案
为了节省内存和提高执行效率,苹果提出了Tagged Pointer的概念。对于 64 位程序,引入 Tagged Pointer 后,相关逻辑能减少一半的内存占用,苹果对于Tagged Pointer特点的介绍: Tagged Pointer指针的值不再是地址了,而是真正的值。…