美文网首页
黑魔法-运行时交换方法

黑魔法-运行时交换方法

作者: 怪兽密保 | 来源:发表于2016-12-09 11:26 被阅读0次

    参考网址:https://github.com/lizelu/ObjCRuntimeDemo

    //这个方法可以检测图片名称是否为空,如果是空会打印

    #import "UIImage+image.h"

    #import <objc/message.h>

    @implementation UIImage (image)

    +(void)load

    {

    Method imageNamemethod= class_getClassMethod([UIImage class], @selector(imageNamed:));//这个是系统自身的方法

    Method imagezjqMethod= class_getClassMethod([UIImage class], @selector(zjq_imageName:));//自己定义的方法

    method_exchangeImplementations(imageNamemethod, imagezjqMethod);//两个方法进行交换,当调用第一个方法时会执行第二个方法的内容

    }

    +(__kindof UIImage*)zjq_imageName:(NSString *)imageName

    {

    //    加载图片,方法已交换,相当于调用了系统的imageNamed方法,不会死循环

    UIImage *image=[UIImage zjq_imageName:imageName];

    if (image==nil) {

    NSLog(@"图片为空");

    }

    return image;

    }

    相关文章

      网友评论

          本文标题:黑魔法-运行时交换方法

          本文链接:https://www.haomeiwen.com/subject/jfsaettx.html