首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Luminixus
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
14
文章 13
沸点 1
赞
14
返回
|
搜索文章
最新
热门
Runtime源代码解读10(内存管理Autorelease)
本文继续探究另一种内存管理方式 Autoreleasing,即通过自动释放池 autorelease pool 进行内存管理。以下摘自 Runtime 源代码中名为 Autorelease pool implementation 的注释: Autorelease pool 的 …
Runtime源代码解读9(内存管理Retain/Release)
首先需要理解类、对象、对象引用、isa之间的关系。APP 在加载阶段会将 Objective-C 类载入内存的静态区,Objective-C 类本质是 C 语言结构体objc_class,结构体包含了类的超类、协议、成员变量列表、方法列表等类的元数据。类载入内存后,在内存中占据…
Runtime源代码解读8(应用载入)
内容被检测到包含涉政、违规、暴恐关键字,一脸蒙圈。无奈只能发到简书,下面是链接:https://www.jianshu.com/p/b935dec8d8ee
Runtime源代码解读7(深入探讨面向对象实现细节)
在前面6篇文章中,通过分析 runtime 源代码介绍了 Objective-C 的类和对象的实现原理。本文则主要探讨以下问题:面向对象的 Objective-C 语言代码,是如何解析成 C 语言代码的。探讨该问题的过程,可以得到更多 runtime 关于面向对象的实现细节。 …
Runtime源代码解读6(分类)
本文介绍分类(Category)的实现以及分类的加载过程。分类是对 Objective-C 类的一种扩展方式。说到分类不可不提扩展(Extension)。扩展通常被视为匿名的分类,但是两者实现的区别还是很大的: 分类的数据结构是category_t结构体。包含了分类名称name…
Runtime源代码解读5(属性)
属性(property)是为类的成员变量提供公开的访问器。属性与方法有非常紧密的联系,可读写的属性有 getter 和 setter 两个方法与之对应。 属性(property)大多数情况是作为成员变量的访问器(accessor)使用,为外部访问成员变量提供接口。使用@prop…
Runtime源代码解读4(方法列表)
类的方法包括实例方法(instance method)和类方法(class method),两者保存在完全不同的地方,实例方法保存在类的方法列表中,类方法保存在元类的方法列表中。在Runtime源代码解读(实现面向对象初探)中已介绍过方法的基本数据结构objc_method,以…
Runtime源代码解读3(成员变量列表)
类的成员变量列表描述类的对象需要保存哪些数据,包括这些数据的名称、类型、在对象内存空间中占用的区块、对齐方式准则信息。通过成员变量的内存布局信息,可以直接由对象内存地址定位成员变量的内存地址,实现高效的对象数据读写。 成员变量的数据结构是ivar_t结构体,定义指向ivar_t…
Runtime源代码解读2(类和对象)
在Runtime源代码解读(实现面向对象初探)中,从Cocoa框架中的runtime.h头文件公开的数据结构及 API 对 runtime 整体有一个大概的认知。从本文开始具体分析 Apple 开源的runtime源代码。本文介绍 runtime 如何通过C语言结构体实现类和对…
Runtime源代码解读(实现面向对象初探)
文章的开头是Apple Documentation对runtime的定义,很官方也很抽象。个人对runtime的理解是:在狭义上,runtime用面向过程的C语言实现了面向对象特性,也就是实现了类和对象;在广义上,runtime实现了Objective-C语言的动态特性(深入O…
下一页
个人成就
文章被点赞
203
文章被阅读
54,469
掘力值
1,531
关注了
15
关注者
167
收藏集
1
关注标签
30
加入于
2019-09-26