2011-09-11 10 views
22

Tengo una pregunta muy básica sobre algún código de muestra de Apple. En el archivo .m, las declaraciones de clase se ven así:¿Qué significa el texto entre paréntesis en las instrucciones @interface y @implementation?

@interface MyMovieViewController (OverlayView) 
[...] 
@end 

@interface MyMovieViewController (ViewController) 
[...] 
@end 

@implementation MyMovieViewController(ViewController) 
[...] 
@end 

@implementation MyMovieViewController (OverlayView) 
[...] 
@end 

@implementation MyMovieViewController 
[...] 
@end 

código completo here.

Parece que las cosas entre paréntesis ("OverlayView" y "ViewController") están ahí para ayudar a dividir el código y hacerlo más legible, pero en realidad no afectan la ejecución del código. Pero no quiero malinterpretar algo importante, así que pensé en verificarlo para asegurarme.

¿Entiendo bien? ¡Gracias!

Respuesta

20

Se llaman Categories y le permiten añadir más funcionalidad a sus clases.

Una categoría le permite agregar métodos a una clase existente, incluso a una para la que no tiene la fuente. Las categorías son una característica poderosa que le permite ampliar la funcionalidad de las clases existentes sin crear subclases. Usando categorías, también puede distribuir la implementación de sus propias clases entre varios archivos. Las extensiones de clase son similares, pero permiten que se declaren API adicionales requeridas para una clase en ubicaciones que no sean dentro del bloque de interfaz de clase primaria.

From the Apple docs on Categories and Extensions.

+0

documentos de Apple en [Personalización de las clases existentes] (https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html) – LopSae

Cuestiones relacionadas