首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
底层
订阅
Geula
更多收藏集
微信扫码分享
微信
新浪微博
QQ
18篇文章 · 0订阅
iOS 编译原理与应用
在Xcode中,当我们按下command + B进行build操作后发生了那些事情,这是一个将代码编译的过程。Xcode现在使用的编译器是LLVM,Xcode 早期使用的是GCC编译器,由于一些历史原因,从Xcode5开始正式过渡到使用LLVM编译器。下文将着重介绍LLVM。 …
iOS底层--类的加载分析
本文旨在分析dyld初始化主程序时,类结构是如何被加载的,类数据是如何处理的。这部分也隶属于main()函数前的流程。 上篇dyld是如何加载app的分析了dyld的流程,说明了在准备初始化主程序时,libObjc会来_objc_init()到对项目中所有的类结构进行初始化。因…
App崩溃现场取变量名和其实际值对应关系(不只是寄存器)
前段时间群里有同学提说希望能在App的崩溃日志中得到崩溃现场当前方法中各个变量名和其当前值(而不是只有寄存器),于是去调研了一下.dSYM文件格式,发现理论上是可行的。 1. .dSYM 文件基本概念 .dSYM文件是Xcode在编译iOS工程过程中产生的符号文件,一般用于崩溃…
OC底层-应用程序加载初探
应用程序加载,是我们每天都要面对的一个课题。每年的WWDC都会关于应用程序的启动时间做出一些优秀的改进更新说明。具体在程序的底层,应用程序的加载做了哪些工作,我们去一探究竟。 库:是已写好的、供使用的 可复用代码,每个程序都要依赖很多基础的底层库。从本质上,库是一种可执行代码的…
玩转iOS开发:iOS开发中的装逼技术 - RunTime(一)
RunTime是Objective-C的特性, 如果用别的话来说, 就是因为Objective-C是动态语言, 然后RunTime就是它的运行时机制这些这些, 然后就没然后了... 但是对于我这些渣渣来说, 个人认为就是一堆C语言写的东西, 废话少说了, 直接来撸吧. 这里是有…
iOS 模式详解—「runtime 面试、工作」看我就 🐒 了 ^_^.
runtime 是 iOS 编程中比较难的模块,想要深入学习 OC,那 runtime 是你必须要熟练掌握的东西,下面是我对 runtime 的整理,从零开始,由浅入深,并且带了几个 runtime 实际开发的应用场景。
2. IOS 内存、自动释放池、桥接的研究
1. 首先我们定义一个Mark类 3. 我们进入Hopper来查看这些代码。 1. -rewrite-objc 查看cpp代码
手写NSCache及开源实现的分析
NSCache是苹果提供的内存缓存框架。它和NSMutableDictionary和用法很相似,但NSCache是线程安全的,并且没有对Key进行copy。虽然官方文档中没有明确指出缓存淘汰策略,但从测试来看,目前使用的是LRU缓存淘汰策略。 缓存的大小有限,当缓存被使用满时,…
为什么要设计metaclass
今早起床打开微信,发现知识小集推送了一篇文章《阿里、字节:一套高效的iOS面试题》,打开瞅了眼,看到第二题就给我看懵圈了,为什么要设计metaclass?在我的知识体系中关于元类的认知是类对象的isa指向元类对象,元类对象存储着类方法列表,然后就没有然后了。 带着这个疑问我边开…
NSRunLoop 总结
NSRunLoop对象是OC对象,是对CFRunLoopRef的封装,可以通过getCFRunLoop方法获取其对应的CFRunLoopRef对象。注意,NSRunLoop不是线程安全的,但CFRunLoopRef是线程安全的。 (2)RunLoopMode NSRunLoop…