Naprawdę dopiero zaczynam rozwijać IOS, ale mam kilka lat rozwoju ASP.net przez C#. Szczerze mówiąc, nigdy wcześniej nie miałem prawdziwej potrzeby zrozumienia delegatów/wydarzeń itp. Wiem, że używam ich podczas programowania web.forms, ale wiele funkcji jest zajętych przez ramy, za kulisami .Delegaci w IOS - Wymagane pewne wyjaśnienie
Teraz, kiedy pracuję w IOS, jestem zmuszony spróbować zrozumieć, jak funkcjonują (przypuszczam tutaj, że teoria delegatów/wydarzeń jest taka sama w różnych językach, może się mylę). Zresztą następujący wiersz kodu w IOS:
if ([self.delegate respondsToSelector:@selector(startImporting:)])
{
[self.delegate startImporting:self];
}
mam rację sądząc, że w pseudo kod, to znaczy coś wzdłuż linii:
Jeśli metoda/klasy wywołanie tej metody ma metoda w nim zwana "startImporting", a następnie wywołaj metodę "startImporting" w klasie wywołującej.
Mam nadzieję, że jest jasne. Jeśli to przypadek to byłoby to w zasadzie taka sama jak o statycznej metody w C#, który można nazwać coś podobnego:
myImportClass.startImporting();
Przypuszczalnie nie, czy to w jaki sposób to zrobić. Czy więc brakuje mi całego punktu delegatów, ich korzyści itp.? Czytałem, co robią w kółko i kiedy ma to sens, nigdy się nie klika, nigdy (i tak w przypadku formularzy internetowych) nie widziałem korzyści z ich używania.
Staje się to coraz ważniejsze, ponieważ używam wyrażeń lambda w .net i są one ściśle związane z delegacjami w C#, więc gdy tylko mogę zacząć ich używać, wolałbym wiedzieć, dlaczego i jakie korzyści przynosi delegatom. faktycznie są.
Tutaj http://stackoverflow.com/questions/30662032/ios-callback-function -from-library zawiera szczegółowe informacje na temat implementacji dla delegatów. –