2010-01-05 17 views
5

¿Puedo saber cómo crear una instancia dinámica de una clase en Objective-C?Cómo crear una instancia dinámica de una clase en Objective-C

+5

respuesta de Alex es correcta, pero para el evitando toda duda, su pregunta no es del todo correcta. No crea una instancia de una clase. Crea una instancia de un * objeto *. Un objeto es una instancia de una clase*. – Graza

+0

Ya estoy de acuerdo con usted. ¿Puede decirme cómo instanciar un objeto de otra clase/módulo? – suse

Respuesta

11
MyClass *myClass = [[MyClass alloc] init]; 
OtherClass *otherClass = [[OtherClass alloc] init]; 
+0

Gracias por la respuesta. También quería saber cómo crear una instancia de un objeto de otra clase/módulo? – suse

+0

Quise decir que otra clase es otro proyecto y no el nombre de la clase ... Entonces, ¿cuál es la sintaxis? – suse

+1

No entiendo lo que quieres decir. No sé cómo crear un proyecto. –

12

En el iPhone, si desea crear una instancia de una clase dada el nombre de clase se puede utilizar la función de tiempo de ejecución objc_lookUpClass.

Por ejemplo, si tengo una BaseHandler clase base y quiero crear una instancia de un objeto de la subclase a la derecha en tiempo de ejecución (codificado como MyHandler en este ejemplo):

#import <objc/objc.h> 
[...] 
NSString *handlerClassName = @"MyHandler" 
id handlerClass = objc_lookUpClass([handlerClassName 
      cStringUsingEncoding:[NSString defaultCStringEncoding]]); 
BaseHandler *handler = (BaseHandler *) [[handlerClass alloc] init]; 
Cuestiones relacionadas