Tengo una categoría en NSDate y sería conveniente si pudiera implementar un protocolo que creé previamente. es posible? ¿cuál es la sintaxis correcta para esto?¿Puede una categoría implementar un protocolo en Objective C?
81
A
Respuesta
131
Sí, eso es posible. La sintaxis es la siguiente:
@interface NSDate (CategoryName) <ProtocolName>
@end
@implementation NSDate (CategoryName)
@end
Aquí es Apple's documentation sobre el tema.
También es posible hacerlo con una extensión de clase. Me gusta mucho que se ajuste de forma privada a los protocolos de delegado. Al hacerlo, se oculta el detalle de la implementación de ser un delegado de alguna clase de la interfaz pública y se elimina la dependencia del encabezado.
Cuestiones relacionadas
- 1. Protocolo frente a categoría
- 2. ¿Qué es "categoría" en Objective-C?
- 3. ¿Puede Java hacer algo como categoría en Objective C? Considere
- 4. Categoría Objective-C y nueva iVar
- 5. Inicializando una variable estática en la categoría Objective-C
- 6. ¿Cómo proporciono una implementación predeterminada para un protocolo Objective-C?
- 7. Cómo referenciar el protocolo en Objective-C?
- 8. La adopción de un protocolo de una categoría
- 9. Método estático del protocolo Objective-C?
- 10. Objective-C Puntero a la clase que implementa un protocolo
- 11. de Objective-C Protocolo Delantero Declaraciones
- 12. Objective-C: Variable de instancia en la categoría
- 13. ¿Desde cuándo es posible declarar las propiedades de Objective-C 2.0 en una categoría?
- 14. ¿Cómo implementar un protocolo de red?
- 15. ¿Cómo funciona un protocolo en una variable de instancia en Objective-C?
- 16. ¿Cómo funciona una categoría?
- 17. Categoría Objective-C Causando el selector no reconocido
- 18. Protocolo Informal En objetivo-C?
- 19. ¿Cuál es la diferencia entre un protocolo y una interfaz en Objective-c?
- 20. Objective-C protocolos "privados"?
- 21. ¿Puedo declarar una variable de tipo 'protocolo' en una interfaz Objective-C?
- 22. Cómo extender protocolos/delegados en Objective-C
- 23. Uso de búferes de protocolo con Objective-C
- 24. Reenviar declarar una estructura en Objective-C
- 25. ¿Qué significa exactamente "adoptar un protocolo" en la documentación de Objective-C/Cocoa?
- 26. ¿Cómo se puede extender un protocolo Clojure a otro protocolo?
- 27. ¿Alguien puede dar un ejemplo de declaración directa en el objetivo C para una clase normal y no para una categoría o protocolo?
- 28. ¿Puede una interfaz Objective c tener más de una implementación?
- 29. Usar Súper en una Categoría de Objetivo C?
- 30. clases privadas en Objective C
Lástima que no hay una forma de mover la declaración de protocolo a la implementación de la categoría de clase. – adib
@adib Para eso están las extensiones de clase. –
enlace de apple no funciona – bikram990