2010-07-12 17 views
6

¿Cuál es la diferencia cuando se usa @class o #import en objective-c?@class vs # import

He visto varios tutoriales y solo unos pocos usan @class, mientras que la mayoría usa #import.

+0

posible duplicado de [Objective-C @class vs. # import] (http://stackoverflow.com/questions/322597/objective-c-class-vs-import) – kubi

Respuesta

14

@class no importa el archivo, solo le dice al compilador "Esta clase existe aunque no la conozca, no me avise si la uso". #import en realidad importa el archivo para que pueda usar todos los métodos y variables de instancia. @class se usa para ahorrar tiempo de compilación (la importación de todo el archivo hace que la compilación tome más tiempo). Puede usar #import si lo desea, su proyecto solo tardará más en compilarse.

+2

A veces, especialmente en el caso de referencias circulares , no puedes usar #import. @class es una declaración directa de una clase, y como no define la clase, puede romper referencias circulares. –

+0

Pensé que #import estaba protegido contra esos, al agregar solo cada archivo una vez. –