首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
李坤
掘友等级
iOS
努力的人生,终将不为时光所负
获得徽章 27
动态
文章
专栏
沸点
收藏集
关注
作品
赞
508
文章 367
沸点 141
赞
508
返回
|
搜索文章
最新
热门
iOS 高级面试题--答案
最近准备复习一下面试题,看到了J_Knight_在18年的出一套 iOS 高级面试题尝试着回答一下题目,由于水平有限,如有错误的地方,请大家多多指教。 1. 分类和扩展有什么区别?可以分别用来做什么?分类有哪些局限性?分类的结构体里面有哪些成员? 3. 被weak修饰的对象在被…
试试这几个block的问题
第一题第二题第三题第四题第五题第六题第七题
谈谈Swift中的枚举内存布局
在掘金上看到从 汇编 到 Swift 枚举内存 的惊鸿一瞥之后,作者分析了几种不同枚举的内存布局,但是我感觉覆盖的不够全面,算是对作者那篇文章的一个补充。建议先看下作者的文章,作者的结论如下:
详解获取weak对象的过程
这里假设,此对象不是TaggedPointer对象,除了一些必要的判断外,在ARC中,获取weak指针时,会调用objc_loadWeakRetained,此方法最终会调用objc_object::rootRetain,对该对象的引用计数器加1,然后在此条语句的下面插入一条re…
iOS用扫描线种子填充算法实现涂鸦的功能
从种子点(x,y)出发,沿当前扫描线向左向右两个方向填充,直到边界。分别标记区段的左右端点为 xLeft,xRight 原因猜测(纯属猜测)如下:frame.size 代表的是视图的大小,这个大小是逻辑大小,而不是真正的像素大小。而 bounds 也是逻辑大小。以 iphone…
阅读Kingfisher源码的一些收获
1. 命名空间的使用 Kingfisher命名空间有2种方式,一种是使用协议加上包装器,另一种是把类型定义在枚举里。参考协议KingfisherCompatible和类型public enum MemoryStorage {},一个是空协议,扩展了一个kf计算属性,但kf里又有…
Kingfisher源码解析之使用
1. 基本使用 Kingfisher中内置的ImageResource和URL实现了Resource协议,ImageResource和URL的区别是ImageResource可自定义cacheKey。 Kingfisher内置了LocalFileImageDataProvide…
Kingfisher源码解析之ImagePrefetcher
先来看下stop函数的实现,实现比较简单,在预加载的队列里异步的执行把标志位stopped设置为true,并且取消当前所有未完成的下载任务,看起来很简单。 对于情况1和情况2都是合理的,并且是绝大部分都会是情况1和情况2,对于情况3,调用stop时并没有真正的去停止,但是这种情…
Kingfisher源码解析之Processor和CacheSerializer
Kingfisher中Processor是一个协议,定义了对原始数据进行加工处理转换成UIImage的能力(Kingfisher缓存的是处理成功之后的UIImage,根据options的值来决定是否缓存原始数据)。 这里的原始数据是指ImageProcessItem,它是一个枚…
Kingfisher源码解析之ImageCache
由上面我们可以看出,Kingfisher中内存缓存是用NSCache实现的,NSCache是一个类似于Dictionary的类,拥有相似的API,不过区别于Dictionary的是,NSCache是线程安全的,并且提供了设置最大缓存个数和最大缓存大小的配置,Backend就是通…
下一页
个人成就
文章被点赞
391
文章被阅读
99,572
掘力值
2,491
关注了
221
关注者
226
收藏集
5
关注标签
7
加入于
2016-07-20