红红の


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

关联 isa

发表于 2020-01-04 | 分类于 iOS源码探究

现在对象在内存中已经分配好内存空间了,但对象和类是怎么关联上的呢,这就是 isa 的工作了。

阅读全文 »

开辟内存空间

发表于 2020-01-04 | 分类于 iOS源码探究

实例对象的内藏所占大小计算完成后,接下来要做的就是开辟内存空间了。开辟内存空间的源码在 libmalloc。

阅读全文 »

对象实例的空间大小

发表于 2020-01-04 | 分类于 iOS源码探究

我们在分析对象创建的流程时发现,对象在创建之前,第一步是先计算实例对象所占空间大小。所以我们今天来看一下是如何创建的。

阅读全文 »

联合体与位域

发表于 2020-01-02 | 分类于 工具代码

在对 OC 对象创建的探究过程中,我们发现一个很有趣的实现 isa。isa 是将对象内存空间与 class 之间联结起来的桥梁,而他的实现也很精妙,在有限的存储空间(一个寄存器的存储空间,在 64 位架构为 16 个字节,在 32 位的架构为 8 个字节)里,记录了很多的内容。他的实现方式正是我们今天的主角 – 联合体与位域。

阅读全文 »

内存对齐

发表于 2019-12-22 | 分类于 工具代码

内存对齐,或者说字节对齐,是代码编译后在内存的布局与使用方式。现代计算机一般是32比特或64比特地址对齐,如果要访问的变量没有对齐,可能会触发总线错误。参考维基百科。

阅读全文 »

对象的创建

发表于 2019-12-21 | 分类于 iOS源码探究

一个程序在运行的过程中,离不开对象的创建,那么对象究竟是怎么创建的呢?OC 作为一门高级语言,对象在底层又是怎么实现的,对象的本质又是什么呢?带着这些疑问,开启我们的探索旅程。

阅读全文 »

OC-Runtime:iOS 的消息转发实例篇

发表于 2019-11-01 | 分类于 工具代码

OC-Runtime:iOS 的消息转发流程篇 讲述了消息在发送阶段的转发流程,这里会结合实例,更直观的看一下消息转发的流程。

阅读全文 »

JavaScriptCore

发表于 2019-08-06 | 分类于 工具代码

JavaScriptCore 为原生编程语言 Objective-C、Swift 提供调用 JavaScript 程序的动态能力,也能为 JavaScript 提供原生能力来弥补前端欠缺的能力。

阅读全文 »

OC-Runtime:Aspects 解读篇

发表于 2019-08-05 | 分类于 工具代码

切面编程 Aspects 就是利用 Method Swizzling 与 _objc_msgForward 的典型实例。下面就对 Aspects 做一个深度的解读。

阅读全文 »

Weex 初体验

发表于 2019-06-21 | 分类于 工具代码

最近看了一篇很赞的文章,是讲 weex、react-native 和 JSPatch 之间的对比,作为一枚 iOS 程序猿,当然了,我使用过 react-native,JSPatch 也了解过(由于苹果爸爸禁止使用 hotfix,并没有派上用场),weex 当然也有必要去体验一下。

阅读全文 »
1…345

49 日志
9 分类
26 标签
GitHub E-Mail
© 2023 小红
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4