首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
iOS底层原理
追马666
创建于2021-07-12
订阅专栏
专门写一些偏向于基础和底层的文章
等 8 人订阅
共16篇文章
创建于2021-07-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
iOS 线程常见知识点
线程和进程 线程概念 线程是进程的基本执⾏单元,⼀个进程的所有任务都在线程中执⾏ 进程要想执⾏任务,必须得有线程,进程⾄少要有⼀条线程 程序启动会默认开启⼀条线程,这条线程被称为主线程或UI线程 进程
iOS-KVO浅谈
KVO简介 KVO概述 KVO是键值观察者(key-value-observing) KVO提供一种观察者机制,通过对某个属性添加添加观察者,当值改变时,会执行回调
iOS-KVC
KVC的全称是Key-Value Coding,翻译成中文是 键值编码,键值编码是由NSKeyValueCoding非正式协议启用的一种机制,对象采用该协议来间接访问其属性。既可以通过一个字符串key
iOS-底层原理 13 分类的本质和加载过程
在日常开发中经常会使用到分类,对分类的了解也仅限于使用。但是对它的底层实现还不是那么了解,本文主要根据源码探索分类。 分类的介绍 Category是Objective-C 2.0之后添加的语言特性,分
iOS-底层原理 12 类的加载
类的从可执行文件mach-o到我们想象中的对象的过程是一个比较复杂的地址和实现地址的绑定过程。把类的属性,方法,协议等地址信息关联到类的信息中。
iOS-底层原理 11 启动时dyld和objc的关联
App启动需要dyld与objc相互配合 :app由内核引导启动,之后交由dyld 主导,完成运行环境的初始化,配合ImageLoader将二进制文件按格式加载到内存
iOS-底层原理10 App启动到main方法前都做了什么
启动之前(编译阶段) 编译阶段主要是把代码编译成可执行文件。以及启动时主要执行了那些方法的探索。哦里给
iOS-底层原理09 消息转发
在上一文章中,如果最后方法决议还是获取不到IMP,那么会进行消息的转发流程。 通过输出文件查看转发流程 在方法执行后都会走缓存的方法。这里有一个设置是否输出到文件的方法,如下所示。可以通过修改objc
iOS-底层原理08 动态方法决议(找不到IMP的处理)
消息查询流程 前面研究了消息查询的正常流程消息查询流程:快速消息查询和慢速消息查询。如果还没有找到改消息IMP那么会进入异常流程处理。
iOS-底层原理 07 消息的查询
方法的本质 在前面的文章对象的本质中,使用了Clang理解了对象的本质。同样我们使用Clang获取.cpp文件查看main中方法的实现。
iOS-底层原理 06 类的设计原理 & cache的insert过程
1.类的本质和结构。类其实就是一个获取方法和属性指针的结构体。 2.类的方法缓存的过程,以及他的内存存储
iOS-底层原理 05 类的数据结构优化 & 属性和成员变量的区别
WWDC 2020 - 运行时的优化 主要对运行时做了三个地方的优化:1. 数据结构改变。OC在运行时会使用他们进行追踪类。2. OC方法列表的变化 3. tagged pointer格式的变化
iOS-底层原理 04 类的结构分析(bits)
根据苹果官网给的关系图做了一些验证 1.查看类的源码结构2.查看isa指向以及继承关系3.输出类中的bits存储的信息
iOS-底层原理 03 对象的本质 & isa
使用clang把OC对象编译成C++,查看底层代码。 我使用了如下代码编译了LGPerson.m 类,在同一目录下生成了LGPerson.cpp文件
iOS-底层原理 02 结构体内存对齐
结构体中成员顺序以及成员和成员数量属于会影响到结构体大小。主要依据1.成员字节大小 2.成员对齐规则 3.自动补齐
iOS-底层原理 01 对象创建流程
1.如何探索底层源码 从苹果官网获取oc底层源码,加入到工程中,就可以查看对应的源码。 2.alloc流程 3.init方法做了什么 4.new方法做了什么