iOS_Runtime3_动态添加方法
发布日期:2021-05-10 10:09:16 浏览次数:7 分类:精选文章

本文共 2980 字,大约阅读时间需要 9 分钟。

Objective-C���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������

���������������������������������������������������������������������������������������������������+ (BOOL)resolveInstanceMethod:(SEL)sel������������������������������������������������������������������������������������������������������������������������+ (BOOL)resolveClassMethod:(SEL)sel������������

���������������������������������id self���SEL _cmd���self���������������������������������_cmd������������������������������������������_cmd������������������������������������������������������������

������������������������������

���������������������������������������������������class_addMethod������������������������������������

BOOL class_addMethod(Class cls, SEL name, IMP imp, const char *types)
  • ������������cls���������������
  • ������������name���������������SEL������������
  • ������������imp������������������������
  • ������������types������������������������������

���������������������types���������������������������������������������

  • void������v���������
  • id������@���������
  • SEL������:���������

���������������������������������

���������������������UIImage���������������������������������������clearImage���������������������������������UIImage���������������������������������������������������������������

// ���UIImage+Image.h���������������������// ���UIImage+Image.m���������������������+ (BOOL)resolveInstanceMethod:(SEL)sel{    if (NSSelectorFromString(@"clearImage") == sel) {        // ������������������������������        class_addMethod(self, sel, (IMP)clearImage, "v@:@");        return YES;    }    return [super resolveInstanceMethod:sel];}// ���������������������������IMP clearImage = ^void(id self, SEL _cmd) {    NSLog(@"������������������");    // ���Var������������������������������������������������������};// ������������UIImage *image = [[UIImage alloc] init];[image performSelector:@selector(clearImage)];

������������������������

������performSelector���������������������������������������������

// ���������������������������[aObject performSelector:@selector(yourDynamicMethod) withObject:param];

���������performSelector������������������������������������������������������������������������������

���������������������������

������������������������������������������������������������������

  • ������������������������������������������������������������������������������������������������������������������������������������������������
  • ���������������������������������������������������������
  • ������������������������������������������������������������������������������������������
  • ������������������������������������������������������������������������������������������������������������������������������������

    上一篇:iOS_Runtime4_动态添加属性
    下一篇:iOS_Runtime2_方法交换

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月27日 00时37分18秒