利用runtime动态生成对象?

来源:互联网 发布:java设计工程师学习 编辑:程序博客网 时间:2024/05/09 15:07

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

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

1)对象名

    NSString *class =@"DYViewController";

    constchar *className = [class cStringUsingEncoding:NSASCIIStringEncoding];

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

    Class newClass = objc_getClass(className);

3)创建类

        Class superClass = [UIViewControllerclass];

        newClass = objc_allocateClassPair(superClass, className,0);

4) 注册

注册你创建的这个类

        objc_registerClassPair(newClass);

5)创建DYViewController对象

    id instance = [[newClassalloc] init];

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

            利用kvc赋值

            [instance setValue:propertyValue forKey:propertyName];


1 0