动态生成类

时间:2012-01-17 09:16:24

标签: objective-c class dynamic

是否可以在Objective-C中动态创建类?

我想做这样的事情,但动态地:

Mission *mission = [[Mission alloc]init];
        mission.Id = [modelObject Id];
        mission.EntityState = [modelObject EntityState];
        mission.Description = [modelObject Description]; 

所以我试过这个

id clonedobject = [[[modelObject class] alloc]init];
for (NSString *key in dic) 
    {
        [[clonedobject valueForKey:[dic objectForKey:key]] addObject:[modelObject valueForKey:[dic objectForKey:key]]];
    }

但是使用这段代码,我无法通过clonedobject.Id达到id。它表示"在id类型的对象上找不到属性ID。

有没有办法做这样的事情?

[modelObject class] *clonedobject = [[[modelObject class] alloc]init]

2 个答案:

答案 0 :(得分:6)

请参考给定的链接.. Creating class at runtime

答案 1 :(得分:0)

可以在运行时注册类,但这不是您正在寻找的。

即使您可以在运行时添加类,它也无法帮助您使用编译时类型的变量。即你仍然不知道编译时的类型,因此你仍然不能使用像clonedobject.id这样的点表示法来使用属性。

您如何知道此对象有一个名为id的属性?看起来你已经知道它是什么类型了。