Sto lavorando con la programmazione dei socket. Volevo solo chiarire un dubbio relativo a un codice che ho scaricato da - mobileorchard.com - Chatty. Mentre R & D, ho visto una chiamata di funzione in ChatRoomViewController.m file diPerché chiamiamo doesNotRecognizeSelector: method?
[chatRoom broadcastChatMessage:input.text fromUser:[AppConfig getInstance].name];
quando ho visto in Room.m file di, per l'attuazione del bando di cui sopra; era
- (void)broadcastChatMessage:(NSString*)message fromUser:(NSString*)name
{
// Crude way to emulate an "abstract" class
[self doesNotRecognizeSelector:_cmd];
}
i googled per "doesNotRecognizeSelector:", secondo Apple relativo per la gestione degli errori, affermando "Il sistema runtime richiama questo metodo ogni volta che un oggetto riceve un messaggio aSelector non può rispondere o avanti" la mia domanda è: perché lo sviluppatore chiama la funzione broadcastChatMessage: fromUser: se non ne fa uso e per gestire l'eccezione del "selettore non trovato" del metodo?
Secondo Stackovrflow, è utilizzato per creare una classe astratta, in base a questo Question, per evitare l'avviso di "Incompleto incompleto".
Non riesco ancora a capire perché questo metodo sia utilizzato in quello Chatty Code, Gentilmente aiutami a capire il motivo per cui viene usato quel metodo.
Sembra che lo sviluppatore originale dell'applicazione stia tentando di emulare le funzionalità di una classe di base astratta C++, in quanto non valide. È semplicemente una forma più estrema di rendere i metodi non fare nulla o restituire un valore di segnaposto (di solito 0 o NULL). – CodaFi