Posts
Ouyang Rong
Cancel

iOS开发-连续拍照异步按顺序批量上传图片

一、数据模型 @interface SSTEditTaskSujectFinishedPictureModel:NSObject /** * 图片上传的日期 */ @property (nonatomic,copy) NSString *uploadDate; /** * 图片关联的科目 */ @property (nonatomic,copy) NSString *cours...

2022 年度总结

前言 今年过得很快。 新冠三年,我以为上半年疫情就会过去,没想到,几乎天天做核酸到年尾。 甚至,还封了几次城。全城静默的体验,真的是终生难忘。这样的日子,把人都要过废了,一天到晚,困在家里。出门干啥?拿菜、做核酸。 到了晚上,很多人出来散步,这才发现,原来小区还住着这么多人。 等大会开完了,想着应该放开了。 但是,并没有,还在坚持动态清零不动摇。 于是,盼着明年开春能放开。 ...

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 处理事件...