Sto solo iniziando lo sviluppo di IOS ma ho qualche anno di sviluppo di ASP.net attraverso C#. Per essere onesti non ho mai avuto un reale bisogno di capire delegati/eventi ecc. Prima, so che li sto usando durante la programmazione di web.forms ma molta della funzionalità è curata dal framework, dietro le quinte .Delegati in IOS - Sono richiesti alcuni chiarimenti
Così ora che sto sviluppando in IOS sono costretto a cercare di capire come funzionano (presumo qui che la teoria dei delegati/eventi sia la stessa in tutte le lingue, forse mi sbaglio). In ogni caso, la seguente riga di codice in IOS:
if ([self.delegate respondsToSelector:@selector(startImporting:)])
{
[self.delegate startImporting:self];
}
Ho ragione di pensare che, in pseudo-codice, significa qualcosa sulla falsariga di:
Se il metodo/classe di chiamare questo metodo ha un il metodo in esso chiamato 'startImporting' quindi chiama il metodo 'startImporting' all'interno della classe chiamante.
Spero sia chiaro. Se questo è il caso allora sarebbe essenzialmente lo stesso di avere un metodo statico in C# che si potrebbe chiamare con qualcosa come:
myImportClass.startImporting();
Presumibilmente no, o è così che sarebbe stato fatto. Quindi, mi sto perdendo l'intero punto dei delegati, i loro benefici ecc? Ho letto quello che sono ancora e ancora e mentre ha senso, non fa mai clic, non ho mai visto (nei moduli Web) il vantaggio di usarli.
Questo diventa sempre più importante mentre mi sto spostando a utilizzare espressioni lambda in .net e sono strettamente collegati ai delegati in C# così mentre posso iniziare a usarli, preferirei sapere perché e quali vantaggi i delegati in realtà sono.
Qui http://stackoverflow.com/questions/30662032/ios-callback-function -from-library è possibile trovare i dettagli di implementazione per i delegati. –