- 博客(3)
- 收藏
- 关注
转载 UIImage
当你不需要重用该图像,或者你需要将图像以数据方式存储到数据库,又或者你要通过网络下载一个很大的图像时,请尽量使用imageWithData的方式加载图像,仅仅加载图片而不在内存中缓存下来,那么每次获取时都会重新去加载。对于同一个图像系统只会把它Cache到内存一次,如果是第二次调用,它不是从文件中取,而是直接从缓存中拿,也就是说读的不同的图片越多内存会越来越大,但是直接从内存中取图片,速度肯定快一点,性能高一点。当应用程序需要加载一张比较大的图片并且是一次性使用的,那么是没有必要去缓存这个图片的,用。
2023-06-23 17:56:23
132
原创 SDWebImage原理
1.内存缓存的处理由NSCache对象实现,NSCache类似一个集合的容器,它存储key-value对,类似于nsdictionary类,我们通常使用缓存来临时存储短时间使用但创建昂贵的对象,重用这些对象可以优化新能,同时这些对象对于程序来说不是紧要的,如果内存紧张就会自动释放。对于图片的索引,我们通过一个key来索引,在内存中,我们将其作为NSCache的key值,而在磁盘中,我们用这个key值作为图片的文件名,对于一个远程下载的图片其url实作为这个key的最佳选择。下尝试读取图片文件。
2023-06-23 17:29:48
167
原创 方法查找流程及消息转发
当方法查找流程结束后仍没有找到IMPruntime首先进行 动态方法解析,之后再进入快速的消息转发,最后慢速消息转发。动态方法解析:调用或尝试获取IMP没有IMP,进入快速消息转发,调用尝试获取一个可以处理的对象仍没有处理,进入慢速转发,调用获取到方法签名后,将消息封装为一个invocation再调用进行处理。可见,当一个方法没有实现时,runtime给了3次机会让我们进行处理。下面是动态方法解析和消息转发的流程:Runtime应用Runtime简直就是做大型框架的利器。
2023-06-22 14:06:11
147
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人