首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS
订阅
jack110530
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
iOS 用一个布局来解决嵌套问题—— UICollectionViewCompositionalLayout
当用了UICollectionViewCompositionalLayout,就和那些嵌套滚动视图的构建页面方式say goodbye
iOS编译速度如何稳定提高10倍以上之一
经过多年的发展,美柚iOS项目代码已经达到40W行+的规模,所使用的 Pod 库的数量达到了110+,App Store 安装包210M+,在这么大的项目规模下(CI机器 MAC配置:3 GHz 8-Core Intel Xeon E5;时间:发布20min+),(开发机器iM…
iOS Memory 内存详解 (长文)
iOS 是基于 BSD 发展而来,所以先理解一般的桌面操作系统的内存机制是非常有必要的。在此基础之上,本文会进一步在 iOS 系统层面进行分析,包括 iOS 整体的内存机制,以及 iOS 系统运行时的内存占用的情况。最后会将粒度缩小到 iOS 中的单个 app,讲到单个 app…
iOS - 老生常谈内存管理(五):Tagged Pointer
在objc4源码中,我们经常会在函数中看到Tagged Pointer。Tagged Pointer究竟是何方神圣?请开始阅读本文。 1. Tagged Pointer 是什么? 为了节省内存和提高执行效率,苹果在64bit程序中引入了Tagged Pointer技术,用于优化…
Runtime面试题与栈区参数
1. 面试题 当然,本着 反正不是真面试 的态度,直接跑一下不就行了,嘿嘿。 下面我们仔细分析一下。 2. 分析 这一步获取到了Speaker的类对象,id表示将其转换为一个对象指针,实际类型为struct objc_object *。 而 [Speaker class] 的返…
Swift 利器 - Protocols 和 Extensions
今天要聊的是 Swift 中我比较喜欢的特性之一:Protocols and Protocol Extensions。它能帮助我们在 无需继承 的前提下,创建高复用性、可随意组合的代码库。 我们都知道面向对象编程的三大特性:封装、继承、多态,有了 Swift 的 Protoco…
iOS优化篇之App启动时间优化
最近由于体验感觉我们的app启动时间过长,因此做了APP的启动优化。本次优化主要从三个方面来做了启动时间的优化,main之后的耗时方法优化、premain的+load方法优化、二进制重排优化premain时间。 通常我们对于启动时间的定义为从用户点击app到看到首屏的时间。因此…
WWDC20 iOS14 Runtime优化
1. Class结构体变化 这个类对象包含了最常用的信息:指向元类、父类、以及方法的缓存。它还有一个指针指向更多的额外信息class_ro_t,其中 ro表示read only 。这部分信息是只读的,其中包含了类名、方法、协议、实例变量和属性等信息。Swift类和Objecti…
iOS基于二进制重排的启动优化
在应用加载时候不会把所有数据放内存中,因为数据是懒加载,当进程访问虚拟地址时候,首先看页表,如果发现该页表数据为0,说明该页面数据未在物理地址上,这个时候系统会阻塞该进程,这个行为就叫做页中断(page Fault),也叫缺页异常,然后将磁盘中对应页面的数据加载到内存中,然后让…
iOS 启动优化 + 监控实践
距离上次启动优化(启动任务分级)相隔差不多2年时间了,虽然一直保持在之前的启动速度,但是每个版本排查启动增量会耗费不少时间,想做一个自动化的启动监控流程来降低这方面的时间成本,在启动监控开发中又发现部分启动可优化,于是就顺便把启动也优化了一下。 1、启动优化:在iPhone8P…