首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
底层原理
订阅
astudyer
更多收藏集
微信扫码分享
微信
新浪微博
QQ
19篇文章 · 0订阅
趣探 Mach-O:FishHook 解析
对于动态链接库里面的C函数,第一次调用的时候,我们会得到函数和实现地址的对应关系,函数的实现地址存放在一个叫la_symbol_ptr的地方,第二次调用的时候,直接通过la_symbol_ptr找到函数地址就可以,不再需要繁琐的获取函数地址的过程。(具体通过哪些过程,可以参考刚…
深入理解MachO数据解析规则
我们知道Apple设备可执行文件的存储格式是MachO,一个二进制文件。通常在做逆向或者静态分析的时候都会用到这个文件,分析MachO的常用工具是MachOView。今天借助于MachOView,主要分析Code Signature的存储规则。 1、MachOView是如何确认…
iOS 底层探索 - KVC
Key Value Coding 也即 KVC 是 iOS 开发中一个很重要的概念,中文翻译过来是 键值编码 ,关于这个概念的具体定义可以在 Apple 的官方文档处找到。 我们通常使用访问器方法来访问对象的属性,即使用 getter 来获取属性值,使用 setter 来设置属…
iOS KVC和KVO详解
同时苹果对一些容器类比如NSArray或者NSSet等,KVC有着特殊的实现。 KVC要设值,那么就要对象中对应的key,KVC在内部是按什么样的顺序来寻找key的。当调用setValue:属性值 forKey:@”name“的代码时,底层的执行机制如下: 程序优先调用set:…
轻松过面:一文全解iOS通知机制(经典收藏)
本文主要是针对iOS通知机制的全面解析,从接口到原理面面俱到。同时也解决了之前写的文章阿里、字节:一套高效的iOS面试题中关于通知的问题,相信看完此文再也不怕面试官问我任何通知相关问题了 这是个单例类,负责管理通知的创建和发送,属于最核心的类了。而NSNotificationC…
一文读懂崩溃原理
64位系统对应的__PAGEZERO段地址空间为0~4GB,在这个范围内所有访问权限-读、写和执行-都被撤销,因此若访问该地址就会引发MMU的硬件页错误,进而产生一个异常。 为了防止一个应用占用过多的系统资源,开发iOS的苹果工程师门设计了一个“看门狗”Watchdog的机制。…
iOS 底层拾遗:AutoreleasePool
在阳神的 黑幕背后的Autorelease 文章中已经把 AutoreleasePool 核心逻辑讲明白了,不过多是结论性的东西,笔者通读源码以探究更多的细节,验证一下老生常谈的一些结论。 源码基于 Runtime 750。 可以猜测 push 和 pop 操作是实现自动释放的…
iOS Category 底层实现原理(三):附加+load函数超详细解析
既然写到这里了,那我们就顺便把 +load 函数的调用流程分析一下吧。 实现 +load 的分类和类是非懒加载分类和非懒加载类,未实现 +load 函数的分类和类,是懒加载分类和懒加载类。懒加载类只有我们第一次用到它们的时候,才会执行实现。 load 函数执行是直接由其函数地址…
iOS进阶-领略底层之美:objc4-787.1编译调试
兄弟盟,作为一个iOS开发小白,今天就是打开底层大门的一篇。 底层编译调试,我感觉就是耐心的事情。。有好多问题需要解决,不过当代码跑起来的那一瞬间,兄弟盟,值了。。 在编译过程中会遇到很多问题,需要耐下心来。一步一步操作。 在我看来这是最耗时间的问题,一个一个文件的找,一个一个…
iOS-玩转Block(从入门到底层原理)
还记得当初刚接触Block的时候,第一感觉就是觉得语法怪异,只知道就这么写就对了,然后稀里糊涂地用了一段时间,之后发现在iOS里,Block频繁使用,比如官方的API大量用到Block来回调做事情。经过一段漫长岁月的使用和研究才明白Block这个东西远远没有这么简单。 所以在这…