首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS
订阅
YouthKnowsNoPain
更多收藏集
微信扫码分享
微信
新浪微博
QQ
36篇文章 · 0订阅
深入理解 YYCache
YYCache 是一个高性能的缓存框架,由 ibireme 开发,项目中使用到了 YYCache 作为缓存方案,下面就来掰扯一下它的实现机制,解释它高性能的来由,LRU 算法的实现,使用到的锁,以及删除缓存的时机等,另外还有一些框架我觉得可能存在的问题。 苹果也有自己的缓存方案…
iOS组件化 - 基础
1、随着业务增加,需求迭代。整个项目的文件越来越多,Build越来越慢,按下 Command + R,然后喝杯卡布奇诺再蹲个坑回来,项目还没有跑完。。。 2、干外包,啊不,在外包公司做项目。通用的基础功能代码,如:菊花、网络访问组件、下拉刷新、数据持久化、基础类的分类。如果不把…
深入了解Swift中的初始化(Initialization)
初始化简而言之是一个准备的过程,就好比你想吃地三鲜,这时候你光在脑海里想,你是吃不到的,你需要买菜、洗菜、切菜、炒菜,然后你才能吃上地三鲜。初始化就相当于买菜、洗菜、切菜、炒菜的过程。回到代码上面,它主要做了下面两件事: 除了上面的方式,我们还可以通过设置默认值的方式来给存储属…
Practice - iOS 项目持续集成实践(一)
一个软件工程项目从编写、到测试、再最终交付到用户通常有很多重复且固定的步骤。虽然作为开发者,我们的核心任务是编写代码,而这些其他的步骤却也不能忽视,持续集成(Continuous Integration)则可以帮助开发者完成这些琐碎的事务,提升团队的开发效率与质量。 本文将主要…
iOS多线程安全-13种线程锁🔒
多个线程访问同一块资源的时候,很容易引发数据混乱问题。 正常情况下我有50张票,然后卖了50次,剩余票数应该是0,但是打印结果竟然是3,所以这里就存在了线程安全问题。 出现线程安全的原因就是在同一个时间,多个线程同时读取一个值,像线程A和B同时读取了当前票数为10,等于是卖了两…
APP重构之路(三) 引入单元测试
本文没有给出任何测试代码,或者是在教你如何编写一份具有良好测试性的代码,而是阐述在重构过程中单元测试的重要性与实现方法,关于代码可测试性相关的内容我会另开一篇文章去具体阐述。(画个饼) 这个时候也许能够利用经验和丰富的debug技巧来解决这些问题,但是很多时候我们的处理并不完美…
iOS 中事件的响应链和传递链
响应链:由离用户最近的view向系统传递。initial view –> super view –> ..... –> view controller –> window –> Application –> AppDelegate 传递链:由系统向离用户最近的view传递。UI…
iOS RunLoop详解
Runloop 是和线程紧密相关的一个基础组件,是很多线程有关功能的幕后功臣。尽管在平常使用中几乎不太会直接用到,理解 Runloop 有利于我们更加深入地理解 iOS 的多线程模型。 本文从如下几个方面理解RunLoop的相关知识点。 可见,一个RunLoop对象,主要包含了…
[译] 不使用 fastlane 实现持续交付的 5 种选项
fastlane 工具将整个 iOS CI/CD 流水线(Continuous Integration and Deployment,持续集成和发布,译者注)自动化了,使得我们可以用代码的方式管理整个 iOS 基础架构。fastlane 是一系列工具,用来将例如分析、构建、测试…
RxSwift(6)— 调度者-scheduler源码解析(上)
大家可以想象,多线程对我们 iOS开发 的性能影响是非常大,而对于 RxSwift 这么一套爱装逼的生态,不对线程下手,我觉得不符合它的风格!果然 RxSwift 的大神主要针对 GCD 进行了一套 scheduler 封装。 CurrentThreadScheduler:表示…