首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
ios
订阅
Dot26341
更多收藏集
微信扫码分享
微信
新浪微博
QQ
70篇文章 · 0订阅
Swift 性能优化(2)——协议与泛型的实现
前一篇文章《Swift 性能优化(1)——基本概念》中我们提到了编程语言的派发方式,Swift 支持文中所提到的三种派发方式。其中,函数表派发是 Swift OOP 的底层支持,那么,Swift POP 以及泛型编程底层又是如何实现的呢? 本文,我们就来简单探讨一下协议和泛型的…
探索Swift中Array的底层实现
很显然,从定义上来看,Array是一个struct类型,那也就是值类型了。 在Array中真的只有一个属性_buffer,_buffer在_runtime(_ObjC)下是_ArrayBuffer,否则是_ContiguousArrayBuffer。在苹果的设备下应该都是兼容O…
探索Swift中Dictionary的底层实现及原理
swift字典的设计思路和数组还是有点像的,可以参考我前面写的数组篇,因为这里会讲swift字典用到的hash原理,篇幅有限,将会弱化源码的阅读。 Dictionary存的貌似是个堆上的地址0x000000010053eb40,查看该地址后,发现果然和Array一样,是一个类结…
[iOS] 谈谈iOS多线程的锁
iOS开发中由于各种第三方库的高度封装,对锁的使用很少,刚好之前面试中被问到的关于并发编程锁的问题,都是一知半解,于是决定整理一下关于iOS中锁的知识,为大家查缺补漏。 在过去几十年并发研究领域的出版物中,锁总是扮演着坏人的角色,锁背负的指控包括引起死锁、锁封护(luyang注…
Alamofire源码导读
系统的API发起网络请求一般是通过获取一个URLSessionTask的实例,调用resume()方法即可发起一个网络请求;在iOS中构建网络应用,实际是使用的URLSessionTask的子类(URLSessionDataTask,URLSessionDownloadTask…
Alamofire(1)— URLSession必备技能
URLSession.shared提供了一个共享的单例会话对象,它为创建任务提供了一个合理的默认行为。使用共享会话仅用几行代码将URL的内容获取到内存中。 dataTask创建一个网络会话数据任务。 resume默认网络任务是挂起的,调用执行开始连接请求网络:三次握手... d…
iOS卡顿监测方案总结
最近在写APM相关的东西,所以整理了一下iOS中卡顿监测的那些方案,不了解卡顿的原理的可以看这篇文章iOS 保持界面流畅的技巧,写的很好。 FPS (Frames Per Second) 是图像领域中的定义,表示每秒渲染帧数,通常用于衡量画面的流畅度,每秒帧数越多,则表示画面越…
Swift 4 前后 KVO 的变化
如果了解过设计模式的同学,应该都知道有一种设计模式叫做观察者模式,属于行为型模式,即当对象存在一对多的依赖关系,当一个对象发生变化时,需要自动通知它的依赖对象。通常用于实时事件处理。 我们来研究一下 iOS 里对观察者模式的支持,即 KVO(key-value observin…
iOS底层原理总结 - 探寻KVO本质
对小码哥底层班视频学习的总结与记录。面试题部分,通过对面试题的分析探索问题的本质内容。 首先需要了解KVO基本使用,KVO的全称 Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变。 上述代码中可以看出,在添加监听之后,age属性的值在发…
[iOS] iOS中URLRequest的缓存策略
1. URLRequest 涉及的范围 我们一提到URLRequest,我相信很多国内的开发者,首先就会联想到,HTTP请求,然后木有别的了。 但是其实 URLRequest是一个很大的概念,它不只服务于HTTP协议,它还服务于 其他应用协议,比如File协议,Data协议,自…