首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
深度
订阅
晓君junjun
更多收藏集
微信扫码分享
微信
新浪微博
QQ
14篇文章 · 0订阅
iOS汇编教程(五)Objc Block 的内存布局和汇编表示
在 Objc 中,Block 是一个特殊的对象,它的实例并非是常规的对象结构,而是以 Block_layout 结构体的形式存在。在声明时,Block 的结构体会以值类型的形式直接存储在栈上,随后会被 copy 到堆上,成为一个特殊的对象,学习 Block 的底层原理一方面能够…
iOS 的 Code Signing 体系
iOS中的Code Signing体系非常复杂,对新手非常不友好,虽然目前网上已经存在大量文章对此进行比较透彻的分析,最核心的部分已经讲解得非常清楚,我阅读了这些文章后,确实从中学习到不少知识,但我始终还是对Code Signing体系中很多相关的地方有着疑惑,于是决定认真地探…
有赞移动 iOS 组件化(模块化)架构设计实践
业务组件化(或者叫模块化)作为移动端应用架构的主流方式之一,近年来一直是业界积极探索和实践的方向。有赞移动团队自16年起也在不断尝试各种组件化方案,在有赞微信商城,有赞零售,有赞美业等多个应用中进行了实践。我们踩过一些坑,也收获了很多宝贵的经验,并沉淀出 iOS 相关框架 Bi…
iOS 底层拾遗:objc_msgSend 与方法缓存
行文过程中会涉及到一些汇编代码,不过不影响理解核心逻辑。 源码基于 Runtime 750,arm64 架构。 注意: arm64 汇编代码会出现很多p字母,实际上是一个宏,64 位下是x,32 位下是w,p就是寄存器。 $0获取宏的第一个参数,调用时传的p13,即是isa。这…
NSObject方法调用过程详细分析
我自己虽然之前也分析过方法调用,但是没有成体系做过笔记,这次相当于自己做一个笔记,便于以后查看。 我这个是基于最新的runtime源码版本(版本号objc4-756.2,苹果官网的源码),网上分析的大多都是几年前的版本,虽然说整个逻辑基本一致,但是还是有些许不同。 修改原型是为…
老司机 iOS 周报 #79 | 2019-08-12
老司机 iOS 周报,只为你呈现有价值的信息。 你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。 含笑饮砒霜:App 的启动速度通常是 App 给用户…
手把手带你探索Runtime底层原理(二)动态方法解析和消息转发
这里判断了类有没有解析和是否尝试解析过的标记值triedResolver,再次解析后会把triedResolver设置为YES,只解析一次。 首先lookUpImpOrNil的内部是通过lookUpImpOrForward方法进行查找,再次回到递归调用,lookUpImpOrF…
探索 +initialize 底层调用机制 并与+load 比较
在上一篇文章中(手把手带你探索load底层原理)探索了load的调用机制,本文是探索一下initialize的调用机制,并比较一下异同点。 +initialize其实在平时开发中用的较少,一般用来初始化常量,不过面试中常会问到它与+load的区别。 +initialize 方法…
手把手带你探索load底层原理
load的调用规则类的load方法在所有父类的load方法调用之后调用分类的load方法在当前类的load方法调用之后调用分类的load方法的调用顺序和编译顺序有关探索和上篇文章手把手带你探索Cate
iOS load方法调用机制解析
1. runtime 库入口函数 关于 map_images, load_images, unmap_image 这三个函数我上一篇博客有具体提到, 这里不多赘述了. 直接进去 load_images : 代码中看出这里分为了两步 , 先准备 , 然后调用 . --> GO 2…