首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
习哈
掘友等级
iOS开发
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
16
文章 16
沸点 0
赞
16
返回
|
搜索文章
赞
文章( 16 )
沸点( 0 )
iOS之武功秘籍⑧: 类和分类加载过程
在上一篇文章iOS之武功秘籍⑦: dyld加载流程 -- 应用程序的加载中轻描淡写的提了一句_objc_init的_dyld_objc_notify_register,本文将围绕它展开探索分析类和分类的加载. 此方法的关键代码是 for 循环里面的代码. crash的主要原因是…
iOS之武功秘籍⑱: 启动优化(重点是二进制重排)
启动是App给用户的第一印象,对用户体验至关重要.试想一个App需要启动5s以上,你还想用它么? 最初的工程肯定是没有这些问题的,但随着业务需求不断丰富,代码越来越多......
iOS之武功秘籍⑦: dyld加载流程 -- 应用程序的加载
下面根据这个问题,我们来探索在走到main函数之前,到底还做了什么. 在探索分析app启动之前,我们需要先了解iOS中App代码的编译过程以及动态库和静态库. 动态库是指链接时不复制,程序运行时由系统加在到内存中,供系统调用,系统只需加载一次,多次使用,共用节省内存. dyld…
iOS 15 如何让你的应用启动更快
这是一篇来自 Noah Martin 的文章,作者发现了 WWDC2021 中没有被提及的一处改动,却能够帮助你的 App 在 iOS15 上运行的更快。
iOS之武功秘籍⑥:Runtime之方法与消息
上文说到cache_t缓存的是方法,我们分析了cache的写入流程,在写入流程之前,还有一个cache读取流程,即objc_msgSend 和 cache_getImp.那么方法又是什么呢?这一切都要从Runtime开始说起... Runtime是一套API,由c、c++、汇编…
iOS之武功秘籍⑤:cache_t分析
在上一篇文章中已经全面地介绍了类的结构,但是还剩下一个cache_t cache没有进行详细的介绍,本文就将从源码层面分析cache_t. 其中的_bucketsAndMaybeMask is a buckets_t pointer,是bucket_t类型的结构体指针. 从以上…
iOS之武功秘籍③:OC对象原理-下(isa的初始化和指向分析与对象的本质)
Clang是⼀个由Apple主导编写,基于LLVM的C/C++/Objective-C轻量级编译器.源代码发布于LLVM BSD协议下.Clang将⽀持其普通lambda表达式、返回类型的简化处理以及更好的处理constexpr关键字。 它与GNU C语⾔规范⼏乎完全兼容(当然…
iOS之武功秘籍②:OC对象原理-中(内存对齐和malloc源码分析)
当我们的TCJPerson对象没有其他属性的时候,只有一个从父类NSObject继承过来的isa时,此时创建TCJPerson对象所需的开辟的内存空间大小为16字节. 当我们增加一个name属性时,此时的size 大小还是 16( if (size < 16) siz…
iOS之武功秘籍
春节期间自己又温习了一下objc4-818.2的源码,在此记录一下,方便以后自己复习.
iOS之武功秘籍①:OC对象原理-上(alloc & init & new)
春节的夜晚,十分的难以入睡,梦醒时分,翻开秘籍最新objc4-818.2源码,有个小伙在渐渐的发着呆...... 此时会来到我们下的第一个符号断点libSystem_initializer,通过堆栈信息我们会看到程序会来到非常著名的dyld,经过一系列流程后在来到libSyst…
下一页
个人成就
文章被点赞
8
文章被阅读
1,407
掘力值
54
关注了
80
关注者
4
收藏集
5
关注标签
10
加入于
2019-07-24