美文网首页
一、使用runtime实现查看 imageNamed:是否加载成

一、使用runtime实现查看 imageNamed:是否加载成

作者: 移动端_小刚哥 | 来源:发表于2017-11-29 17:59 被阅读11次

最近学习runtime初读文档不是很了解,于是找到几个案例先熟悉一下用法

    1. 首先新建category
    2. 自定义方法
    3. 方法交换

使用runtime实现方法交换,首先需要倒入头文件#import <objc/message.h>

#import "UIImage+Image.h"
#import <objc/message.h>

@implementation UIImage (Image)

+(void)load
{
    Method imageNamedMethod = class_getClassMethod(self, @selector(imageNamed:));
    Method jzg_imageMethod = class_getClassMethod(self, @selector(jzg_imageNamed:));
    method_exchangeImplementations(imageNamedMethod, jzg_imageMethod);
}

+ (UIImage *)jzg_imageNamed:(NSString *)name {
 
    //此处实际发送的消息是imageNamed:故而不会造成死循环
    UIImage *image = [UIImage jzg_imageNamed:name];
    if (image) {
        NSLog(@"图片加载成功");
    }else{
        NSLog(@"图片加载失败");
    }
    return image;
}

@end

实际调用

UIImageView *theImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"aaaaaa"]];
    [self.view addSubview:theImageView];
    [theImageView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.mas_equalTo(UIEdgeInsetsMake(10, 10, 10, 10));
    }];

注:不能直接重写imageNamed:方法,因为category中不能调用父类方法,而你又不知道父类方法中具体的实现😄

相关文章

  • 一、使用runtime实现查看 imageNamed:是否加载成

    最近学习runtime初读文档不是很了解,于是找到几个案例先熟悉一下用法 使用runtime实现方法交换,首先需要...

  • 缓存

    +imageNamed:方法 之前我们提到使用[UIImage imageNamed:]加载图片有个好处在于可以立...

  • iOS底层原理——runtime

    runtime runtime 是iOS的运行时,用于实现iOS加载和调用属性和方法。 函数中load方法没有使用...

  • iOS [UIImage imageNamed:]生成的对象什么

    如果使用imageNamed这个方法加载一些比较大的资源文件就容易崩溃,从而引发了imageNamed生成的对象什...

  • iOS[UIImage imageNamed:]生成的对象释放时

    如果使用imageNamed这个方法加载一些比较大的资源文件就容易崩溃,从而引发了imageNamed生成的对象什...

  • 544,iOS [UIImage imageNamed:]生成的

    如果使用imageNamed这个方法加载一些比较大的资源文件就容易崩溃,从而引发了imageNamed生成的对象什...

  • UIImage

    UIImage 继承自NSObject UIImage加载 imageNamed1. 使用场合:图片比较小、使用频...

  • Runtime

    Runtime:运行时使用Runtime就是使用苹果提供的API使用Runtime可以实现OC无法实现的:1.使用...

  • iOS开发之性能优化<一>

    一、加载本地图片是否缓存 1.常见的加载本地图片有两种方式: 1.用imageNamed加载2.用imageWit...

  • UIImageView的细节

    加载图片时会使用到的两个方法+ (nullable UIImage *)imageNamed:(NSString ...

网友评论

      本文标题:一、使用runtime实现查看 imageNamed:是否加载成

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