Basta andare avanti con lo sviluppo di iPhone e Objective-C.Quando utilizzare i due punti con un @selector
Ieri stavo cercando di addObserver per una notifica in vista del mio e ho continuato a ottenere questo errore:
unrecognized selector sent to instance
ho rintracciato verso il basso per il fatto che avevo bisogno di includere i due punti finali al mio selettore argomento:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(nameOfMySelector:) name:@"BBLocationServicesAreDisabled" object:nil];
Oggi, ho pensato che ero intelligente perché quando si imposta l'argomento di azione a un pulsante, mi sono ricordato il mio errore di ieri, e ha aggiunto i due punti per l'argomento di azione. L'argomento action prende @selector, proprio come l'argomento selector durante l'impostazione di un osservatore per una NSNotification, quindi ho pensato che stavo facendo la cosa giusta.
Tuttavia, con il seguente codice:
[self.callToActionButton addTarget:self action:@selector(nameOfMySelector:) forControlEvents:UIControlEventTouchUpInside];
ottengo lo stesso identico errore:
unrecognized selector sent to instance
Che cosa dà? Perché uno @selector richiede due punti finali e l'altro no? Quali sono le regole che dovrei seguire per quando dovrebbe essere incluso e quando dovrebbe essere lasciato fuori, e perché non posso sempre fare solo uno o l'altro?
Grazie!
È un colon, non un punto e virgola. Ad ogni modo, qual è il prototipo del tuo metodo 'nameOfMySelector:'? Che tipo di argomento vuole? – BoltClock
Ti riferisci allo stesso metodo in entrambi i casi? – BoltClock
Ha! Una svista da parte mia; Ho modificato il post per fare riferimento a loro come due punti. – djibouti33