美文网首页
runtime基本用法

runtime基本用法

作者: 赖熊 | 来源:发表于2016-09-21 14:47 被阅读0次

1 当我们动态加载某个类的时候,可以用到runtime,可以便捷的获取到动态加载类的所有信息 (属性,属性名)

 /**
     *测试自动生成某个类
     */
    NSDictionary *dict =@{
                            @"class": @"WaitViewController",
                            @"property": @{
                            @"ID": @"123",
                            @"type": @"12"
                            }
    };
    NSString *class =[NSString stringWithFormat:@"%@",dict[@"class"]];
    const char *className =[class cStringUsingEncoding:NSUTF8StringEncoding];
    Class newClass =objc_getClass(className);
    if (!newClass) {
        Class superClass =[UIViewController class];
        newClass =objc_allocateClassPair(superClass, className, 0);
        objc_registerClassPair(newClass);
        
    }
    id instance =[[newClass alloc] init];
    NSDictionary *propertys =dict[@"property"];
    [propertys enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
//加载类中的属性
        NSLog(@"%@",key);
        unsigned int outCount, i;
        objc_property_t *property1 =class_copyPropertyList([instance class], &outCount);
        for (i=0; i<outCount; i++) {
            objc_property_t property =property1[i];
            NSLog(@"%s",property_getAttributes(property));
//            NSLog(@"%@",method_getName((__bridge Method)(instance)));
            NSString *propertyName =[[NSString alloc] initWithCString:property_getName(property) encoding:NSUTF8StringEncoding];
            if ([propertyName isEqualToString:key]) {
                NSLog(@"yes");
            }
        }
        
        
    }];

相关文章

  • runtime基本用法

    1 当我们动态加载某个类的时候,可以用到runtime,可以便捷的获取到动态加载类的所有信息 (属性,属性名)

  • runtime基本用法

    先导入 runtime 头文件。1、用 runtime 改变变量值; 2、使用 runtime 交换方法; 3、使...

  • Runtime基本用法

    Runtime的一些术语 SEL方法选择器 它是selector在 Objc 中的表示(Swift 中是 Sele...

  • Runtime快速上手(1)

    依照惯例跳过Runtime的介绍,这里只介绍Runtime的基本用法和简单应用例子。 一、获取属性列表 输出结果:...

  • iOS知识梳理8:万恶的Runtime

    本文中所使用的参考链接:ios开发-Runtime详解ios Runtime几种基本用法简记iOS运行时详解ios...

  • Runtime的几种基本用法

    本方看的 (cocoachina)上一位大老的 Demo消息机制在OOP术语中,消息传递是指一种在对象之间发送和接...

  • 再次用runtime的一次实践

    好久不用,再次使用runtime重写代码。就用高性能添加图片圆角来再一次实践一下runtime的基本用法。runt...

  • iOS-runtime的基本用法

    iOS runtime基本用法 本内容为作者原创, 未经允许, 不得用于商业用途 我的blog 一. 改变实例变量...

  • iOS Runtime 几种基本用法简记

    Runtime 介绍 这不是一遍介绍关于Runtime实现细节的文章,而是怎么利用Objective-C提供的Ru...

  • iOS面试点文章链接

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

网友评论

      本文标题:runtime基本用法

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