利用runtime动态生成对象?

利用runtime我们能够动态生成对象、属性、方法这特性

假定我们要动态生成DYViewController,并为它创建属性propertyName

1)对象名

    NSString *class = @"DYViewController";

    const char *className = [class cStringUsingEncoding:NSASCIIStringEncoding];

2)从一个字符串返回一个Class

    Class newClass = objc_getClass(className);

3)创建类

        Class superClass = [UIViewController class];

        newClass = objc_allocateClassPair(superClass, className, 0);

4) 注冊

注冊你创建的这个类

        objc_registerClassPair(newClass);

5)创建DYViewController对象

    id instance = [[newClass alloc] init];

6)给类添加属性propertyName,值为propertyValue

            利用kvc赋值

            [instance setValue:propertyValue forKey:propertyName];


posted @ 2017-06-12 08:21  yxysuanfa  阅读(302)  评论(0编辑  收藏  举报