首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS底层原理
订阅
unravel2025
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
搞iOS的,面试官问Hash干嘛?原因远比我下面要介绍的多
一、了解hash的重要性在iOS开发中随处可见Hash的身影,难道我们不好奇吗?下图只是列出了部分知识点(Hash在iOS中的应用分析整理)摘自知乎的一句话:1.1、关联对象的实现原理:参考资料:iO
iOS 底层探索 - alloc & init
作为 iOS 开发者,我们每天打交道最多的应该就是对象了,从面向对象设计的角度来说,对象的创建以及初始化是最基础的内容。那么,今天我们就一起来探索一下 iOS 中最常用的 alloc 和 init 的底层是怎么实现的吧。 对于第三方开源框架来说,我们去剖析内部原理和细节是有一定…
iOS 底层探索 - 消息查找
因为 C 无法通过写一个函数来保留未知的参数并且跳转到一个任意的函数指针。 objc_msgSend 必须足够快。 我们在探索 objc_msgSend 的时候,当找不到缓存的时候,会来到一个地方叫做 objc_msgSend_uncached,然后会来到 MethodTabl…
iOS 底层探索 - cache_t
上一篇我们一起探索了 iOS 类的底层原理,其中比较重要的四个属性我们都简单的过了一遍,我们接下来要重点探索第三个属性 cache_t,对于这个属性,我们可以学习到苹果对于缓存的设计与理解,同时也会接触到消息发送相关的知识。 从源码定义中不难看出,bucket_t 其实缓存的是…
iOS 底层探索 - 类
那么对象又是从哪来的呢?有过面向对象编程基础的同学肯定都知道是类派生出对象的,那么今天我们就一起来探索一下类的底层原理吧。 我们在日常开发中大多数情况都是从 NSObject 这个基类来派生出我们需要的类。那么在 OC 底层,我们的类 Class 到底被编译成什么样子了呢? 我…
iOS 底层探索 - calloc 和 isa
上一篇文章主要我们探索了 iOS 对象的 alloc 和 init 以及对象是怎么开辟内存以及初始化的,如果在对象身上增加一些属性,是否会影响内存开辟呢?还有一个遗留问题就是通过 calloc ,我们的对象有了内存地址,但是对象结构里面的 isa 是怎么关联到我们的对象的内存地…
iOS 底层探索 - 方法
我们在前面探索了对象和类的底层原理,接下来我们要探索一下方法的本质,而在探索之前,我们先简单过一遍 Runtime 的知识点,如果读者对这块内容已经很熟悉了的话可以直接跳过第一章。 众所周知,Objective-C 是一门动态语言,而承载整个 OC 动态特性的就是 Runtim…
iOS开发小记-基础篇
KVC允许以字符串形式间接操作对象的属性,全称为Key Value Coding,即键值编码。 首先查找-set<Key>:代码通过setter方法赋值。(勘误1) 否则,检查+(BOOL)accessInstanceVariablesDirectly方法,如果你重写了该方法并…
iOS 底层探索 - 类的加载
在 main 函数执行执行,其实 dyld 还会在流程中初始化 libSystem,而 libSystem 又会去初始化 libDispatch,在 libDispatch 初始化方法里面又会有一步 _os_object_init,在 _os_object_init 内部就会调…
iOS 底层探索 - 应用加载
App 从被用户在主屏幕上点击之后就开启了它的生命周期,那么在这之中,究竟发生了什么呢?让我们从 App 启动开始探索。在探索之前,我们需要熟悉一些前导知识点。 如上图箭头所示,App加载流程 就是我们 App 的二进制主文件。 对于接触 iOS 开发比较早的同学,可能知道我们…