Intento descubrir cómo funcionan realmente las cosas. Así que pensé que cuando sobrescribiera ciertos métodos usando categorías, obtendría NSLogs interesantes.Cómo llamar a la implementación original cuando sobrescribe un método con una categoría?
@implementation UIView(Learning)
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
NSLog(@"-hitTest:withEvent: event=%@", event);
return [self hitTest:point withEvent:event];
}
@end
super y self no funcionan aquí. ¿Hay alguna manera de llamar a la implementación original de -hitTest: withEvent :? Lo que quiero es un NSLog cada vez -hitTest: withEvent: se llama en un UIView.
Es solo para fines de aprendizaje personal. Quiero ver la entrega del evento en acción.
Súper no funciona en una categoría porque' No lo estoy llamando en la misma clase, lo estás llamando en el super de clase. Entonces, en este caso, el super es un UIResponder que no tiene un método hitTest: withEvent. Llamar a uno solo da como resultado un bucle infinito porque está anulando hitTest: withEvent para "self". –
Mi comentario parece un poco fuera de lugar aquí, pero tenía sentido antes de que el comentario anterior borrara el suyo. –