首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
oc
订阅
HUI本尊16888
更多收藏集
微信扫码分享
微信
新浪微博
QQ
9篇文章 · 0订阅
温故而知新-ObjC Runtime 方法缓存
ObjC Runtime 的消息传递过程中,会使用方法缓存提高效率。 每个类有一个方法缓存,而不是每个对象都有一个缓存。 方法缓存是一个散列表。 若调用的是父类的方法,也会添加到本类的缓存里。 先简单回顾下。 Runtime System 会创建一个 NSInvocaton 对…
静态库and动态库
例如MJExtension, MJRefresh, AFNetworking... 动态库则不会复制, 只有一份. 程序运行时动态加载到内存; 系统只加载一次, 多个程序共用, 节省内存; 正常情况下, 需要选中每一个模拟器进行编译, 生成支持对应架构的静态库. 然后合并; 非…
iOS 底层 - isa 的前世今生
本篇文章首先讲述 isa 的作用 , 实际数据结构 , 其中不同二进制位存储内容说明 , 包括 isa 优化 , 是否为 TaggedPoint . 然后以引用计数为例实际探索 . 最后讲述 isa 的指向 , 以及 SuperClass 的指向探索 . 其中穿插了一些面试题以…
iOS GCD信号量dispatch_semaphore_t
信号量(Semaphore)是多线程环境下的一种保护设施,可以用来保证两个或多个关键代码不被并发调用。 在进入一个关键代码段之前,线程必须获取一个信号量。一旦执行完毕,该线程就会释放信号量。等待下一个信号量被发送,线程才能继续获取到新信号量并再次执行关键代码段。 要求:线程进入…
iOS 的 Code Signing 体系
iOS中的Code Signing体系非常复杂,对新手非常不友好,虽然目前网上已经存在大量文章对此进行比较透彻的分析,最核心的部分已经讲解得非常清楚,我阅读了这些文章后,确实从中学习到不少知识,但我始终还是对Code Signing体系中很多相关的地方有着疑惑,于是决定认真地探…
如何使用shouldRasterize属性进行性能调优
CALayer的shouldRasterize属性可能很多人都没有听说过,即使是听说过也不知道这个属性开启后有什么意义,有什么应用场景。今天我们就来好好来说道说道。 rasterize,中文是光栅化。这个翻译反而让人更加疑惑了,光栅化是个什么东西。 也就是说所谓光栅化就是把la…
写一个易于维护使用方便性能可靠的Hybrid框架(四)—— 框架构建
基于前面的三篇,我们的Hybird框架基本搭建完成了,本篇在《写一个易于维护使用方便性能可靠的Hybrid框架(三)—— 配置插件》的基础上做了一些优化,后续又做了UIWebView的兼容。当下的跨平台方案很多,weex、RN到flutter层出不穷。那么对于WebView的探…
iOS 界的毒瘤:Method Swizzle
iOS 界的毒瘤:Method Swizzle
ObjC Runtime简析
在iPhone cpu 使用arm64架构之前,isa指针就是一个Class类型的普通指针,存储着Class、Meta-Class的内存地址。在这之后apple对isa指针进行了优化,利用位域的技术,将isa指针换成了一个union(共用体)。arm64架构之后的isa指针每一…