利用runtime动态生成对象?
Posted yxysuanfa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用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];
以上是关于利用runtime动态生成对象?的主要内容,如果未能解决你的问题,请参考以下文章
java反射并不是什么高深技术,面向对象语言都有这个功能,而且功能也很简单,就是利用jvm动态加载时生成的class对象