robado - como saber si un iphone tiene icloud 2018
¿Cómo verificar si un delegado responde a un selector? (2)
Su @protocol
necesita implementar <NSObject>
, simplemente actualice su definición de protocolo para que se vea así:
@protocol MyProtocol <NSObject>
Sé que necesito escribir:
[delegate respondsToSelector:@selector(myMethod:)]
Pero el compilador se queja de que respondsToSelector no es un método en el protocolo, lo cual es correcto. Sin embargo, he visto muchos ejemplos de código usar esto, ¿cómo lo haces?
Greg Martin tiene su respuesta, pero aquí hay una explicación rápida de por qué el compilador se queja:
El método respondsToSelector:
es parte del protocolo NSObject
, por lo que cuando intenta enviar ese mensaje a su delegado (de tipo id
), el compilador no tiene forma de saber que su delegado podría manejarlo.