窥探KVO本质

KVO的实现方式

KVO 是我们日常开发经常用到的技术,关于 KVO 的实现相信大家也都有一定的了解,我们来看下苹果的对于 KVO的描述:

Automatic key-value observing is implemented using a technique called isa-swizzling.
The isa pointer, as the name suggests, points to the object’s class which maintains a dispatch table. This dispatch table essentially contains pointers to the methods the class implements, among other data.
When an observer is registered for an attribute of an object the isa pointer of the observed object is modified, pointing to an intermediate class rather than at the true class. As a result the value of the isa pointer does not necessarily reflect the actual class of the instance.
You should never rely on the isa pointer to determine class membership. Instead, you should use the class method to determine the class of an object instance.

SDWebImage源码(二)——SDImageCache缓存器

SDWebImage的缓存器

SDImageCacheSDWebImage的重要部件之一,它是一个单例类,完成了对图片的内存缓存、异步磁盘缓存、图片缓存查询等功能,这也是其优秀性能的原因所在,即下载过的图片将被缓存到内存和本地磁盘,当再次请求相同图片时直接从缓存中提取图片,从而大大提高了加载速度。SDWebImage的作者对核心方法都做了比较好的注释,这也大大提高了我们的阅读速度,我们先来看看头文件里的内容。

SDWebImage源码(一)——SDWebImage概览

SDWebImage是我们经常使用的一个异步图片加载库,使用时只需一行代码就能实现网络图片的异步加载、缓存(内存+磁盘),非常方便。最近工作稍清闲,就仔细研读了一下它的源码。本篇主要是简单梳理SDWebImage的工作流程,如下图所示:

Mac下php开发环境搭建

最近公司项目比较清闲,闲暇时间想学习学习php开发,毕竟不能吊死在一棵树上再加上最近iOS行情不太好,记录一下php的学习历程。
mac上php开发环境有两种配置方法,一种是自己一步步手动配置Apache+php+MySql+ phpMyAdmin,另外一种方法是直接下载xampp一键安装,直接集成了所有的开发环境,很便捷暴力。这里主要是记录一下前者的集成步骤。

|