美文网首页
runtime的用法

runtime的用法

作者: Jorunk | 来源:发表于2018-07-10 23:01 被阅读11次
  • 1.使用runtime改变变量值
 //成员变量个数
    unsigned int count = 0;
    //获取所引用的实例变量
    Ivar *ivars = class_copyIvarList([Preson class], &count);
    
    //遍历
    for (int i = 0; i < count; i++) {
        //取出第i位置成员变量
        Ivar ivar = ivars[i];
        
        //查看成员变量
        const char *name = ivar_getName(ivar);
        
        NSString *key = [NSString stringWithUTF8String:name];
        
        if ([key isEqualToString:@"_name"]) {
            object_setIvar(self.person, ivar, @"name1");
            break;
        }
  • 2.使用runtime交换方法
//获取方法
    Method m1 = class_getInstanceMethod([self.person class], @selector(firstMethod));
    Method m2 = class_getInstanceMethod([self.person class], @selector(secondMethod));
    
    method_exchangeImplementations(m1, m2);
}
  • 3.使用runtime添加方法
//"v@:@" v表示void,@表示id,:表示SEL
    class_addMethod([self.person class], @selector(run:), (IMP)runMethod, "v@:@")
  • 4.使用runtime给分类扩展属性
- (void)setNick:(NSString *)nick
{
    objc_setAssociatedObject(self, &name, nick, OBJC_ASSOCIATION_COPY_NONATOMIC);
}

- (NSString *)nick
{
    return objc_getAssociatedObject(self, &name);
}

相关文章

  • iOS面试点文章链接

    runtime基础方法、用法、消息转发、super: runtime 完整总结 runloop源码、runloop...

  • iOS-runtime相关

    本篇涵盖runtime的解析、应用等. 1.runtime快速入门和实战2.Runtime 10种用法(没有比这更...

  • runtime的用法

    1.使用runtime改变变量值 2.使用runtime交换方法 3.使用runtime添加方法 4.使用runt...

  • runtime的用法

    最近在研究runtime 主要是想好好的装一波 无奈 看过了 唐巧大大的runtime介绍 看的我是脑袋直疼,看来...

  • RunTime的用法

    RunTime简介## 刚入行的时候,经常听到某些自称大神的人说runtime怎么怎么强大怎么怎么牛逼,我总是被忽...

  • RunTime用法

    一、什么是RunTime iOS开发过程中,我们一直在与Runtime打交道,可什么是Runtime呢? 对比C语...

  • runtime用法

    在之前学习runtime的过程中,我发现方法交换有两种写法,一开始对对一种写法不太能理解,后来自己写demo来试验...

  • runtime用法

    1.监听网络状态 2.添加分类属性(set / get_assocaite关联) 3.获取类的成员变量以及属性等(...

  • Runtime消息转发及其应用

      之前写过文章Runtime的常见用法里面有介绍过利用Objective-C的Runtime特性来给Catego...

  • Docker 命令

    用法 Usage: A self-sufficient runtime for containers. 选项 Op...

网友评论

      本文标题:runtime的用法

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