runtime-02-Swizzle

上一篇我们讲过runtime中可以交换两个方法的具体实现;利用swizzie就可以实现;什么意思呢?废话不多说,直接上代码。

呢,废话不多说,直接上代码。

在开发中,图片会提供IOS7版本的,IOS8版本的,但是我们不可能每加载一个图片就去判断是不是IOS7版本还是IOS8版本,这样,我们就可以写一个UIImage类的扩展,使得我们直接调用一个方法,不管是什么IOS7还是IOS8让方法去判断,不用麻烦自己;如图:

runtime-02-Swizzle_第1张图片

我们现在就用[UIImage imageWithName:name];代替[UIImage imageNamed:name];

然而当我们的软件是以前的版本,全部都是用[UIImage imageNamed:name];要是现在一个一个改过来,太麻烦了。我们就可以用swizzie来让imageWithName和imageNamed两个方法交换;如图

runtime-02-Swizzle_第2张图片


runtime-02-Swizzle_第3张图片

runtime-02-Swizzle_第4张图片


runtime-02-Swizzle_第5张图片


这样两个方法就交换了。

你可能感兴趣的:(ios,Runtime,Swizzle)