¿Cómo puedo obtener un método para devolver un objeto aleatorio de tipo NSObject?

Yo, como ejercicio de aprendizaje de Objective CI, necesito escribir un método que devuelva un objeto NSObject aleatorio.
El enfoque que traté de seguir fue intentar obtener una lista de todos los objetos en tiempo de ejecución y el itirate y obtener un NSObject y devolverlo.

En primer lugar, no estoy seguro de si ese es el mejor enfoque. En segundo lugar, el código que estoy usando se basa en este y objc_getClassList enlace pero en Xcode4 obtengo un error de tiempo de compilación

warning: Semantic Issue: Implicit declaration of function 'objc_getClassList' is invalid in C99
warning: Semantic Issue: Implicit declaration of function 'classIsSubclassOfClass' is invalid in C99

Intenté agregar los siguientes encabezados pero no fue bueno

#import <objc/runtime.h>
#import <objc/objc-class.h>
#import <objc/objc-runtime.h>

pero ninguno me ayudó y todavía tengo la advertencia.

Entonces, ¿puedo ayudarme con estas dos cosas?
1- ¿Es este el enfoque correcto y qué es si no para lograr lo que estoy tratando de lograr?
2- ¿Cómo puedo conseguir este codigo para no dar advertencias en Xcode 4.

preguntado el 27 de agosto de 11 a las 17:08

2 Respuestas

Bueno, objc_getClassList se declara en objc/runtime.h, por lo que incluirlo o importarlo debería hacerlo.

Por otra parte, simplemente necesita declara tu función antes de usarlo. En el nivel superior del archivo, o en un archivo que luego incluyas, pones el encabezado de la función, sin el cuerpo:

BOOL classIsSubclassOfClass( const Class aClass, const Class subclass );

Esto le permite al compilador conocer la función; entonces puedes #include esta declaración en cualquier archivo que necesite usar la función, mientras la define (es decir, completa el cuerpo) donde quiera.

Respondido 27 ago 11, 22:08

Entonces, lo que quieres es obtener una clase, cualquier clase, que herede de NSObject?

No creo que este sea el enfoque correcto en absoluto. No veo la necesidad de obtener ninguna clase aleatoria. ¿Qué harías con eso?

Tal vez lo que desee es agregar un subconjunto de clases conocidas que sean útiles para usar en una matriz. Y luego elija uno al azar de esa matriz.

Respondido 27 ago 11, 22:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.