¿Puede una categoría implementar un protocolo en Objective C?
objective-c cocoa (1)
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?
Sí, eso es posible La sintaxis es:
@interface NSDate (CategoryName) <ProtocolName>
@end
@implementation NSDate (CategoryName)
@end
Aquí está la documentación de Apple sobre el tema.
También es posible hacer esto usando 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.