利用runtime動態生成物件?
阿新 • • 發佈:2019-01-23
利用runtime我們可以動態生成物件、屬性、方法這特性
假定我們要動態生成DYViewController,併為它建立屬性propertyName
1)物件名
NSString *class = @"DYViewController";
constchar *className = [class cStringUsingEncoding:NSASCIIStringEncoding];
2)從一個字串返回一個Class
Class newClass = objc_getClass(className);
3)建立類Class superClass = [UIViewController
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];