Posts
Ouyang Rong
Cancel

iOS SDWebImage 源码分析

类的介绍(SDWebImage 3.8.1) NSData+ImageContentType 通过 Image data 判断当前图片的格式 SDImageCache 缓存,定义了 Disk 和 memory 二级缓存(NSCache)负责管理 cache 单例 SDWebImageCompat 保证不同平台/版本/屏幕等兼...

AFNetworking 源码分析

一、架构 AFNetworking 一共分为 5 个模块,2 个核心模块和 3 个辅助模块: Core NSURLSession(网络通信模块) AFURLSessionManager(封装 NSURLSession) AFHTTPSessionManager(继承自 AFURLSessionManager,实现了 HTTP 请求相关的配置) Serialization...

iOS 架构设计

软件架构入门 软件架构(software architecture)就是软件的基本结构。 合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。 分层架构 分层架构(layered architecture)是最常见的软件架构,也是事实上的标准架构。如果你不知道要用什么架构,那就用它。 这种架构将软件分成若干个水平...

2021 年度总结

前言 2021年,嗖的一下,就过去了,我的人生又增添了哪些光彩呢? 鲁迅说,“你的时间花在哪儿,就在哪儿获得成长”。 那我就好好回顾一下这一年我有哪些成长吧! 工作 工作情况 目前供职于一家做小学生智能教育辅导工具的互联网创业公司。 2020年,受新冠疫情影响,在线教育行业非常火爆。 但是,2021年,受“双减政策”影响,教培行业基本被锤爆了。一些知名教育公司,比如:新东方、...

网络漫谈

HTTP 协议 1. HTTP 特性 HTTP 协议构建于 TCP/IP 协议之上,是一个应用层协议,默认端口号是 80。 HTTP 是无连接无状态的。 2. HTTP 报文 HTTP 协议是以 ASCII 码进行传输的,建立在 TCP/IP 协议上的应用层规范。规范把 HTTP 分为三个部分:状态行、请求头、请求主体。HTTP 定义了与服务器交互的不同方法,常用的有如下...

iOS YYKit 源码学习

YYKit 框架的作者是现任职于滴滴的郭曜源(ibireme)。 最近一系列开源项目 YYKit 在 iOS 社区引起广泛反响,由于其代码质量高,在短时间内就收获了大量的 star,它的作者是国人开发者 ibireme,优酷土豆的 iOS 开发工程师郭曜源,InfoQ 社区编辑唐巧对他进行了采访,了解这些开源项目背后的故事。 大家好,我叫郭曜源,是一个 iOS 开发者,现居北京,...

iOS 本地数据存储

沙盒 iOS本地化存储的数据保存在沙盒中, 并且每个应用的沙盒是相对独立的。每个应用的沙盒文件结构都是相同的,如下图所示: Documents:iTunes会备份该目录。一般用来存储需要持久化的数据。 Library/Caches:缓存,iTunes不会备份该目录。内存不足时会被清除,应用没有运行时,可能会被清除。一般存储体积大、不需要备份的非重要数据。 Library...

Runloop 总结梳理

RunLoop概念 RunLoop介绍 RunLoop 是什么?RunLoop 顾名思义就是一种循环,只不过它这种循环比较高级。一般的 while 循环会导致 CPU 进入忙等待状态,而 RunLoop 则是一种“闲”等待,这部分可以类比 Linux 下的 epoll。当没有事件时,RunLoop 会进入休眠状态;当有事件发生时,RunLoop 会去找对应的 Handler 处理事件...

Objective-C - Runtime 总结梳理

Runtime的特性主要是消息(方法)传递,如果消息(方法)在对象中找不到,就进行转发,具体怎么实现的呢。我们从下面几个方面探寻Runtime的实现机制。 Runtime介绍 Objective-C 扩展了 C 语言,并加入了面向对象特性和 Smalltalk 式的消息传递机制。而这个扩展的核心是一个用 C 和编译语言写的 Runtime 库。它是 Objective-C 面向对象和动态...

深入理解 iOS 内存管理(Memory Management)

前言 苹果在 2011 年的时候,在 WWDC 大会上提出了自动的引用计数(ARC)。ARC 背后的原理是依赖编译器的静态分析能力,通过在编译时找出合理的插入引用计数管理代码,从而彻底解放程序员。 在 ARC 刚刚出来的时候,业界对此黑科技充满了怀疑和观望,加上现有的 MRC 代码要做迁移本来也需要额外的成本,所以 ARC 并没有被很快接受。直到 2013 年左右,苹果认为 ARC 技术...