Создавать классы динамически - PullRequest
1 голос
/ 17 января 2012

Можно ли динамически создавать классы в 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.Он говорит: «Идентификатор свойства не найден в объекте с идентификатором типа.

Есть ли способ сделать что-то подобное?

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

Ответы [ 2 ]

6 голосов
/ 17 января 2012

пожалуйста, обратитесь по данной ссылке .. Создание класса во время выполнения

0 голосов
/ 26 апреля 2013

Можно зарегистрировать классы во время выполнения, но это не то, что вы ищете.

Даже если бы вы могли добавить классы в время выполнения , это не помогло бы вам с типом переменной время компиляции . то есть вы все равно не знаете тип в время компиляции , и, следовательно, вы все равно не можете использовать свойства, используя точечную запись, такую ​​как clonedobject.id.

Откуда вы знаете, что у этого объекта есть свойство с именем id? Кажется, вы уже знаете, какой это тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...