首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
运行时
订阅
火柴盒环游记
更多收藏集
微信扫码分享
微信
新浪微博
QQ
21篇文章 · 0订阅
iOS之武功秘籍③:OC对象原理-下(isa的初始化和指向分析与对象的本质)
Clang是⼀个由Apple主导编写,基于LLVM的C/C++/Objective-C轻量级编译器.源代码发布于LLVM BSD协议下.Clang将⽀持其普通lambda表达式、返回类型的简化处理以及更好的处理constexpr关键字。 它与GNU C语⾔规范⼏乎完全兼容(当然…
手撕iOS底层18 -- 类加载之初探--dyld与libObjc那些事
DYLD_PRINT_STATISTICS:设置DYLD_PRINT_STATISTICS为YES,会打印App在main函数前的加载时长,包括整体加载时长和动态库的时长,通过这个环境可以查看耗时,对其耗时分析进行优化。 当程序有Crash发生时, 程序中的Crash是指违背了…
App启动流程之 dyld 探析
从用户点击 App 开始到用户看到第一个界面,这称为一次 App 启动。 一般情况下,App 的启动分为冷启动和热启动。 冷启动是指, App 点击启动前,它的进程不在系统里,需要系统新创建一个进程分配给它启动的情况。这是一次完整的启动过程。 热启动是指 ,App 在冷启动后用…
神经病院Objective-C Runtime入院第一天—isa和Class
前言 我第一次开始重视Objective-C Runtime是从2014年11月1日,@唐巧老师在微博上发的一条微博开始。 这是sunnyxx在线下的一次分享会。会上还给了4道题目。 这4道题以我当时的知识,很多就不确定,拿不准。从这次入院考试开始,就成功入院了。后来这两年对R…
Runtime中的 isa 结构体
有一定经验的iOS开发者,或多或少的都听过Runtime。Runtime,也就是运行时,是Objective-C语言的特性之一。日常开发中,可能直接和Runtime打交道的机会不多。了解Runtime,有助于开发者深入理解Objective-C这门语言。 使用Objective…
从 runtime 源码解析对象发送消息的动态性
本文不是对runtime的使用的简单的阐述,而是我对runtime中消息发送的一些更深层的理解。 不要相信任何博客或者文章,apple 的 opensource 源代码会告诉我们想知道的一切,所以善用源码可能会事半功倍。 上述的代码就是用结构体实现一个简单的类,其实真正的run…
iOS探索 runtime面试题分析
里面虽然可以添加属性变量,但是这些properties并不会自动生成Ivar,也就是不会有 @synthesize的作用,dyld加载期间,这些分类会被加载并patch到相应的类中。这是一个动态过程,Ivar不能动态添加 然而程序还是无情的崩了... 其实在iOS中NSNumb…
iOS Runtime 初识与应用
什么是运行时呢?从字面意思来看,就是一个程序在其运行的过程中所做的一些事情。而苹果在 object—C 中提供了一套纯 c 语言的 api,这套 api 即为 runtime。 在 iOS 开发的过程中,正式因为runtime 的特性,让 object-C 具有了吸引人的魅力。…
iOS Runtime简单介绍,以及不同类的Method Swizzling
(同步简书更新) Runtime介绍: runtime顾名思义就是运行时,其实我们的App从你按下command+R开始一直到App运行起来经历了大致两个阶段,1:编译时,2:运行时。还记得一道很经典的面试题 这里给大家解释下:首先, * testObject 是告诉编译器,te…
[iOS Runtime]数组越界写全了吗
做了个升级检查,其中有一段代码直接下标访问的数组arr[0],我敢这样写,因为我用runtime判断了数组越界。但是我现在发现没写全,我真是个大傻子😂,关键是我还写了测试代码。 经@马德里不可思义的提醒,为了保证代码的健壮性,不建议hook,我非常赞同他的观点。但hook的最…