首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS底层原理
订阅
jeremi
更多收藏集
微信扫码分享
微信
新浪微博
QQ
28篇文章 · 0订阅
Swift函数派发机制
在探究Swift函数派发机制之前,我们应该先了解一下函数派发的基本知识。函数派发就是程序判断使用哪种途径去调用一个函数的机制,也就是CPU在内存中找到该函数地址并调用的过程。每次函数被调用时都会被触发, 但你又不会太留意的一个东西. 了解函数派发机制对于写出高性能的代码来说很有…
iOS系统内核加载【进阶之路一】
前言针对一个工作几年以上的iOS,如果仅仅停留在业务页面能力,其实并没有增值!接下来的一个月左右本人将主要讲述App启动方面的底层知识,保证通过这一两个月的学习和关注,一定让你对App启动有一个更深的
iOS进阶-细数iOS中的锁
互斥锁:保证在任何时候,都只有一个线程访问对象。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒; 调用者在未获得锁的情况下,一直运行--自旋,所以占用着CPU,如果不能在很短的时间内获得锁,会使CPU效率降低。所以自旋锁就主要用在临界区持锁时间非常短且CPU资源不紧张的…
iOS源码解析: NotificationCenter是如何实现的?
本文从源码角度对iOS中的通知进行了解析,并对通知中心的一些特性进行了相应的解读。 NSNotification理所当然要包含通知name、object,且使用userInfo用于传递参数。 这里封装了一个结构体Name,而非直接使用字符串。所以,我们通常使用的话,需要这样写 …
iOS 浅谈GPU及“App渲染流程”
—— 将 “3D坐标” 转换成 “2D坐标” ,再将 “2D坐标” 转换为 “实际有颜色的像素” 。 该阶段输入的是顶点数据(Vertex Data),顶点数据是一系列顶点的集合。顶点着色器主要的目的是把 3D 坐标转为 “2D” 坐标,同时顶点着色器可以对顶点属性进行一些基本…
IOS底层原理之 dyld的加载流程
在iOS开发中,我们都存在这样的一个误区,那就是程序的入口在main函数,所有的程序运行由此函数的调用而开始运行,但是实际上在main函数之前会有一系列的工作在运行,比如+load方法和constructor构造函数就是在main函数之前执行的。这篇文章将从main函数入手向上…
iOS多线程:GCD详解
GCD有着很明显的优势,正是这些优势才使得GCD在处理多线程问题有着举足轻重的地位。 相信很多初级开发者会对GCD任务和队列之间的关系理解含糊不清,实际上队列只是提供了保存任务的容器。为了更好的理解GCD,很有必要先了解任务和队列的概念。 任务就是需要执行的操作,是GCD中放在…
iOS内存二三事
Page In/Out和 Swap In/Out 概念类似,只不过Page In/Out是将某些页的数据写到内存/从内存写回磁盘交互区;而Swap In/Out是将整个地址空间的数据写到内存/从内存写回磁盘交互区;本质都是交互机制。 通用的计算机(大型机和专用计算机不在此范围)…
IOS底层原理之isa
在上一篇的文章深入底层理解alloc和init以及new中我们分析了alloc,知道了 alloc创建了对象并且分配内存;同时初始化isa属性;我们也知道了Objective-C 对象在底层本质上是结构体,所有的对象里面都会包含有一个isa,isa的定义是一个联合体isa_t,…
KVC实现原理剖析
KVC全称是Key Value Coding,定义在NSKeyValueCoding.h文件中,翻译成中文是键值码,是由NSKeyValueCoding非正式协议启用的一种机制,对象采用这种机制来提供对其属性的间接访问,这种间接访问机制补充了实例变量及其关联的访问器方法提供的直…