Simplemente comenzando con el desarrollo de iPhone y Objective-C.Cuándo usar dos puntos con un @selector
Ayer estaba tratando de addObserver de una notificación en una vista de la mía, y me quedé conseguir este error:
unrecognized selector sent to instance
que lo rastreó al hecho de que tenía que incluir los dos puntos de fuga a mi argumento de selección:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(nameOfMySelector:) name:@"BBLocationServicesAreDisabled" object:nil];
Hoy en día, pensé que era inteligente, porque la hora de establecer el argumento acción a un botón, recordé mi error de ayer, y añadí los dos puntos para el argumento de la acción. El argumento de acción toma un @selector, al igual que el argumento selector mientras se configura un observador para una NSNotificación, así que pensé que estaba haciendo lo correcto.
Sin embargo, con el siguiente código:
[self.callToActionButton addTarget:self action:@selector(nameOfMySelector:) forControlEvents:UIControlEventTouchUpInside];
me sale exactamente el mismo error:
unrecognized selector sent to instance
Lo que da? ¿Por qué un @selector requiere un punto final y el otro no? ¿Cuáles son las reglas que debo seguir para cuándo debe incluirse y cuándo debe dejarse, y por qué no puedo siempre hacer solo una u otra?
Gracias!
Es un punto, no un punto y coma. De todos modos, ¿cuál es el prototipo de su método 'nameOfMySelector:'? ¿Qué tipo de argumento quiere? – BoltClock
¿También se refiere al mismo método en ambos casos? – BoltClock
¡Ja! Un descuido de mi parte; He editado la publicación para referirme a ellos como dos puntos. – djibouti33