Как динамически создать экземпляр класса в Objective-C - PullRequest
5 голосов
/ 05 января 2010

Могу ли я узнать, как динамически создавать класс в Objective-C?

Ответы [ 2 ]

12 голосов
/ 05 мая 2010

На iPhone, если вы хотите создать экземпляр класса с заданным именем класса, вы можете использовать функцию времени выполнения objc_lookUpClass.

Например, если у меня есть базовый класс BaseHandler и я хочу создать экземпляр объекта правого подкласса во время выполнения (в этом примере это жестко закодировано как MyHandler):

#import <objc/objc.h>
[...]
NSString *handlerClassName = @"MyHandler"
id handlerClass = objc_lookUpClass([handlerClassName 
            cStringUsingEncoding:[NSString defaultCStringEncoding]]);
BaseHandler *handler = (BaseHandler *) [[handlerClass alloc] init];
11 голосов
/ 05 января 2010
MyClass *myClass = [[MyClass alloc] init];
OtherClass *otherClass = [[OtherClass alloc] init];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...