1. 程式人生 > >利用runtime動態生成物件?

利用runtime動態生成物件?

利用runtime我們可以動態生成物件、屬性、方法這特性

假定我們要動態生成DYViewController,併為它建立屬性propertyName

1)物件名

NSString *class = @"DYViewController";

constchar *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];