关于objective c:动态生成类

Generate classes dynamically

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

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

1
2
3
4
Mission *mission = [[Mission alloc]init];
        mission.Id = [modelObject Id];
        mission.EntityState = [modelObject EntityState];
        mission.Description = [modelObject Description];

所以我尝试了这个

1
2
3
4
5
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"。

有没有办法做这种事?

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


请参阅给定的链接。在运行时创建类


可以在运行时注册类,但这不是您要查找的内容。

即使您可以在运行时添加类,它也不能帮助您处理变量的编译时类型。也就是说,您在编译时仍然不知道类型,因此仍然不能使用点表示法(如clonedobject.id)来使用属性。

你怎么知道这个对象有一个名为id的属性?你好像已经知道它是什么类型了。