Как динамично инстанцировать класса в Objective C

Я могу знать, как динамично инстанцировать класса в Objective C?

5
задан suse 5 January 2010 в 10:01
поделиться

2 ответа

[
MyClass *myClass = [[MyClass alloc] init];
OtherClass *otherClass = [[OtherClass alloc] init];
]
11
ответ дан 18 December 2019 в 06:50
поделиться

На 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];
12
ответ дан 18 December 2019 в 06:50
поделиться